我可以这样做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);