C语言, int a=b=0;怎么错了?=运算符的结合方向是自右向左,所以b先=0,再赋值给a?

C语言, int a=b=0;怎么错了?=运算符的结合方向是自右向左,所以b先=0,再赋值给a。,不会出现说b无赋值的情况呀,为什么?

int a;这样的语句负责申请变量
a=b=0;这样的语句负责给变量赋值
上述语句不能简单合并,可以写成:int a,b; a=b=0;或int a=0,b=0;
int a=b=0;从变量定义语句来说,缺少逗号分隔各变量,导致编译程序无法判断变量名和变量个数。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-01
拆分出来就是int a=b;
int a = 0;
b=0;//b是没有类型的
b没定义系统不知道b是int的还是其他类型。int b, a=b=0;这样就可以了本回答被网友采纳
第2个回答  2020-07-01
答案已经写得很清楚,b没未定义,自然不能这样写
第3个回答  2020-07-01
b未定义,int b, a=b=0;才是对的
相似回答