在C语言中的表达式都是按运算符的优先级别高低顺序计算的,我这句话没错吧?可是这个题:
int x,y,z; x=y=z=0; ++x||++y&&++z; 执行语句后的x值为(1 ),y的值为(0 )。 按书上讲“在逻辑表达式的求解中,并不是所有的逻辑运算符都被执行,只是在必须执行下一个逻辑运算符才能求出表达式的解时,才执行该运算符。”
++x||++y&&++z; 等同 (++x ) || ( (++y) && (++z) );
那么,++X为1,后面的( (++y) && (++z) )就不再计算了