回 帖 发 新 帖 刷新版面

主题:有个表达式的结果我不懂

为什么语句:

    int x=0,y=1,z=2;
    
    z=++x||++y;

     结果是:  x=1,y=1,z=1.  而不是:  x=1,y=2,z=1.?

  请朋友们帮助解释.

回复列表 (共4个回复)

沙发

表达式短路

||
&&
当已经运算的结果可以确定整个表达式的值的时候 剩下的部分就不做计算

1 || a++; //a++不计算,因为1已经确定了表达式的结果
0 && x++; //x++不计算

板凳

非常感谢!

3 楼

表达式短路
||  &&
当已经运算的结果可以确定整个表达式的值的时候 剩下的部分就不做计算

1 || a++; //a++不计算,因为1已经确定了表达式的结果
0 && x++; //x++不计算

4 楼

[quote]表达式短路
||  &&
当已经运算的结果可以确定整个表达式的值的时候 剩下的部分就不做计算

1 || a++; //a++不计算,因为1已经确定了表达式的结果
0 && x++; //x++不计算
[/quote]

此外再说一点 ||  &&  符号两边求的是逻辑值0 1

我来回复

您尚未登录,请登录后再回复。点此登录或注册