主题:有个表达式的结果我不懂
snlaocheng
[专家分:0] 发布于 2007-08-07 22:58:00
为什么语句:
int x=0,y=1,z=2;
z=++x||++y;
结果是: x=1,y=1,z=1. 而不是: x=1,y=2,z=1.?
请朋友们帮助解释.
回复列表 (共4个回复)
沙发
AntiMicrosoft [专家分:3740] 发布于 2007-08-08 06:40:00
表达式短路
||
&&
当已经运算的结果可以确定整个表达式的值的时候 剩下的部分就不做计算
1 || a++; //a++不计算,因为1已经确定了表达式的结果
0 && x++; //x++不计算
3 楼
twentypipi [专家分:0] 发布于 2007-08-19 21:03:00
表达式短路
|| &&
当已经运算的结果可以确定整个表达式的值的时候 剩下的部分就不做计算
1 || a++; //a++不计算,因为1已经确定了表达式的结果
0 && x++; //x++不计算
4 楼
firerat [专家分:110] 发布于 2008-08-17 21:44:00
[quote]表达式短路
|| &&
当已经运算的结果可以确定整个表达式的值的时候 剩下的部分就不做计算
1 || a++; //a++不计算,因为1已经确定了表达式的结果
0 && x++; //x++不计算
[/quote]
此外再说一点 || && 符号两边求的是逻辑值0 1
我来回复