You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何C++中逻辑或(||)运算符无法正确计算?

问题原因与解决方案

这是运算符优先级导致的问题。C++中<<的优先级高于||,所以你的代码会被编译器解析为:

(std::cout << false) || true;

执行流程是:先执行std::cout << false,输出0,这个表达式返回std::cout对象(非空,被当作布尔值true),接着和true做逻辑或运算,最终结果是true但并没有被输出——这就是你觉得||没生效的原因。

修复方法很简单,给逻辑或表达式加上括号,强制让它先计算:

#include <iostream>
int main()
{
    std::cout << (false || true);
    return 0;
}

此时会先算出false || true的结果true,再输出到终端,你会看到打印出1(布尔值true对应的整数表示)。

内容的提问来源于stack exchange,提问作者Hans

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.01 10:45:33