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

这个输出的答案是a=1,b=20,c=11,我不理解为什么a=1不是0呢
2024-11-20 12:07:30
推荐回答(2个)
回答1:

先算c*2=20,所以b=20。
赋值运算符结果等于左值,所以返回b的值20
a=10,故a==20为假,整个表达式返回0。

回答2:

0为假,一切非0值都是“真”,(b=c++*2)即为真,就是1,然后a在第一步a=b==c ;里结果为1,1==1,所以a结果还是1