狂想曲丶 发表于 2020-11-30 15:56:28

赋值语句

已正确定义整型a,b,c,下列赋值语句为何错误?
(a=b)=c=1;

北冰羊 发表于 2020-11-30 16:06:07

是不是b没有赋值,C语言赋值语句从右向左执行。
如果没有括号 a=b=c=1;即:c=1;b=c;a=c;没有问题。
但是有括号的话(a=b)优先执行,因为b没有初值,a=b执行不下去,会报错。

sunrise085 发表于 2020-11-30 16:09:04

这句话,没有语法错误,只是加了括号之后b没有赋值而已
赋值语句从右向左赋值,先给c赋值为1,然后执行括号,把b值赋值给a,再把c赋值给a。最终a和c的值都为1,b没有赋值
页: [1]
查看完整版本: 赋值语句