为什么括号中的AND与没有的评估不同?

在 C++ 中,4&1 == 0, 和1&1 == 1. 但是,4&1 != 1&1评估为0,而不是1,但(4&1) != (1&1)仍按1预期评估。为什么是这样?

回答

关系运算符!=的优先级高于按位 AND &

因此表达式

4 & 1 != 1 & 1

将被解析为

4 & (1 != 1) & 1

  • The C++ precidence rules are easy. * binds tighter than +, and everything else just use brackets. (ok, unary is tighter than binary... usually)

以上是为什么括号中的AND与没有的评估不同?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>