c++ - 使用cout输出按位运算符结果时编译错误

标签 c++ compiler-errors operator-precedence

我能做到int c= 0xF^0xF; cout << c;

但是cout << 0xF^0xF;不会编译。为什么?

最佳答案

根据C++ Operator Precedence , operator<<优先级高于 operator^ ,所以cout << 0xF^0xF;相当于:

(cout << 0xF) ^ 0xF;

cout << 0xF返回cout (即 std::ostream ),不能用作 operator^ 的操作数.

您可以添加括号来指定正确的优先级:

cout << (0xF ^ 0xF);

关于c++ - 使用cout输出按位运算符结果时编译错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41234327/

相关文章:

java - 无法解析符号

c++ - 无法从虚幻引擎中的Vfw.h调用函数

java - 错误: cannot find symbol [compiler error]

c++ - 异或、非或(使用 Eigen 矩阵库)的 bool 乘法

c++ - QML 实例化 C++ 对象。我如何访问他们的方法?

c++ - C++中的析构函数直接调用

javascript - 关于运算符优先级的困惑

c# - 新的 C# 8.0 switch 表达式的运算符优先级是什么?

c - For 循环中的三元运算符导致无限迭代

c++ - 精神可以使用工厂而不是 ADAPT_STRUCT 来处理规则吗?