gpt4 book ai didi

c++ - 为什么逻辑 OR 运算符不首先评估带括号的右侧条件?

转载 作者:太空宇宙 更新时间:2023-11-04 15:35:36 25 4
gpt4 key购买 nike

考虑代码:

int i=2, j=3;
if(i<5 or (++i==j))
cout << "i=" << i;

输出是:

i=2

为什么不使用括号对上述情况有任何影响?为什么输出不是 3?

compiler: g++ 4.8.2 on Ubuntu 14.04LTS

最佳答案

or||相同, 它从左到右执行短路评估。这意味着一旦表达式的结果包含 ||已知,评估停止。

( || 也是一个排序点,因此即使在 i >= 5 的情况下,行为也是明确定义的)。

i < 5true ,不计算另一个表达式;所以i不递增。

关于c++ - 为什么逻辑 OR 运算符不首先评估带括号的右侧条件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34792744/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com