C语言:以下定义语句中正确的是()

A) char a='A'b='B';
B) float a=b=10.0;
C) int a=10,*b=&a;
D) float *a,b=&a;
问题:答案是C选项,麻烦解释以下为什么ABD是错误的?

A,错误很明显,少了一个"," char a='A',b='B';
B、按照c语言的赋值运算规则。"="是从右向左。那么执行b=10.0这句时,b就成了一个未声明的变量。所以是错的!正确的做法应该是分开定义。
D、b是一个float型变量,a是一个float型指针,二者的类型不一致,不能进行赋值。
正确的做法是:
交换二者的定义,float a,*b=&a
或者改变赋值 ,a=&b;
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2018-03-13
A) char a='A'b='B'; //少逗号,应该是这样char a='A',b='B';
B) float a=b=10.0;//a,b应该分开定义,正确的是float a=10.0,b=10.0;
C) int a=10,*b=&a;
D) float *a,b=&a;//a,b位置反了,正确的是float a,*b=&a;本回答被提问者和网友采纳
第2个回答  2011-01-29
A选项少了个逗号。。。
B选项不能连等
D选项a是一个float型的指针,float型的b不能等于指针的地址

参考资料:sername