c语言中 有定义 a=b=c=10; 那么 a==(b=c++*2)应该怎么判断

这个输出的答案是a=1,b=20,c=11,我不理解为什么a=1不是0呢

先算c*2=20,所以b=20。
赋值运算符结果等于左值,所以返回b的值20
a=10,故a==20为假,整个表达式返回0。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-04-04
0为假,一切非0值都是“真”,(b=c++*2)即为真,就是1,然后a在第一步a=b==c ;里结果为1,1==1,所以a结果还是1
相似回答