int x=1,y=2,z=3; x+=y+=z; 的表达式结果是什么?怎么分步计算?(z>=y==z)?1:

问题描述:

int x=1,y=2,z=3; x+=y+=z; 的表达式结果是什么?怎么分步计算?(z>=y==z)?1:

第一个问题
结果为6
x+=y+=z;可以理解为两个表达式,另外+=是从右向左结合,所以先算最右边的
首先,是表达式y+=z,计算后y=5,z=3,表达式y+=z的值为5
最后,是表达式x+=(y+=z);因为y+=z;这个表达式已经为5了,所以x+=y+=z;可以等价为x+=5,所以最后的结果就6
这个问题主要是需要理解表达式的概念,你可以上网搜一下
第二个问题
(z>=y==z)中>=的优先级高于==,并且是左到右结合,所以表达式可以等价于
((z>=y)==z)
首先比较出z>=y的真伪,其结果再与z进行比较是否相等