我们先来搞清楚这里面涉及到的几个运算符的优先级
++、--同优先级 > == > & >||
知道优先级后,其加上括号的等式就变为(((++x) == (y--)) & ((x++) == 1)) ||((--y) == 0);
接着我们就得了解++,--运算符的使用方式
++在变量之前,变量需先加上1再参加运算,如i = 2; ++i = 3; i = 3,++在变量之后,变量需先参加运算再加1,如i = 2; i++ = 2; i = 3
--运算符同理。
好了,有了这些,我们就开始来计算上面的那个表达式。
首先++x = 1,x = 1; y-- = 1 , y = 0所以(++x == y--)为真,注意x的值变为了1, y的值变为了0,接着计算后面的
x++ = 1, x = 2,所以x++ = = 1为真,(((++x) == (y--)) & ((x++) == 1)) 其结果为1,因为不为0,在||运算符之前,||就会进行短路运算,即后面的表达式不会再进行运算y还是为0,整个表达式结果为真。
最后的运行结果就为x=2,y=0 |