C语言指针变量习题,问题如图.希望可以每一项都解释一下哪里不对?
1个回答
展开全部
1)
A.两个*含义并非相同,第1个实际上是这两句的合写形式:double *p; p=&r; 这里的*表示p是指针类型变量;*p=100;表明100存放到p指向单元(即变量r对应的单元)中,而不是存放到变量p中。
B.错。是把r的地址赋值给变量p,即:double *p; p=&r;
C.把100赋值给p的语句是:p=100;
D.没错。
2)
A.连等属于赋值语句,不能用在变量声明中,应该写:int a,b; a=b=0;
B. 没问题。
C. 问题出在*c=&b;这里,因为b变量的类型是float *,而&b的类型是指向float *的地址,变量c的定义写明,c是float *类型的变量,因此无法存放float **类型的&b的结果。
D.分号表明b=1.1;并不属于double a=0.0;的变量说明语句,因此变量b尚未定义。
A.两个*含义并非相同,第1个实际上是这两句的合写形式:double *p; p=&r; 这里的*表示p是指针类型变量;*p=100;表明100存放到p指向单元(即变量r对应的单元)中,而不是存放到变量p中。
B.错。是把r的地址赋值给变量p,即:double *p; p=&r;
C.把100赋值给p的语句是:p=100;
D.没错。
2)
A.连等属于赋值语句,不能用在变量声明中,应该写:int a,b; a=b=0;
B. 没问题。
C. 问题出在*c=&b;这里,因为b变量的类型是float *,而&b的类型是指向float *的地址,变量c的定义写明,c是float *类型的变量,因此无法存放float **类型的&b的结果。
D.分号表明b=1.1;并不属于double a=0.0;的变量说明语句,因此变量b尚未定义。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询