本帖最后由 陈浩 于 2012-1-21 16:29 编辑
首先在这个表达式里优先级最高的是“++”和“--”,然后是“==”,其次是“&”,最后是“||”,所以你可以把表达式以“||”为界分成两部分,而且运算顺序从左致右,先看“++X==Y--”,这里说明一点,“++X"不同于“X++”,前者的值是先自增而后被使用,后者是值先使用后自增。因此“==”左边的值为1,而右边的值也为1,则“&”左边为真,右边“X++==1”,由于X以被修改成1,所以此表达式也为真,这样“||”左边就为真,值得注意的是“||”有短路效果,即左边为真就不会运算右边,所以程序最后的结果是:2,0。我在补充一点,在程序运行完输出的结果是X自增两次,Y自减一次。 |