x,y,z的值分别为0,1,0
逻辑运算符的运算特点是左值确定求右值.逻辑运算符不按照规定的优先级计算,在逻辑表达式的求值过程中,如果从"&&"或"||"左边的运算对象部分能够确定整个逻辑表达式的值,则不再求右边运算对象的值.具体地说:若有a&&b且a的值为0,则无须对b进行运算;若有a||b且a 的值为1,则无须对b进行运算.
表达式按优先级可分为二部分:
第一部分:--x&&--y
第二部分:第一部分值||--z;
--x 为前置运算,先将x值减1后,再参与运算,则结果为0;
根据优化,第一部分后面的--y就不运算了,值仍然为1。第一部分的值为0。
再计算第二部分。
0 ||--z;
z 的值还要减1,变为0。最终逻辑表达式的值为0。
x=0
y=1
z=0
与运算,左边为假时,右边不再计算,左边为真,两边都计算。或运算,左边为真时,右边不再计算,左边为假时,两边都计算