By: Ailson Jack
Date: 2020.12.06
个人博客:http://www.only2fire.com/
本文在我博客的地址是:http://www.only2fire.com/archives/125.html,排版更好,便于学习,也可以去我博客逛逛,兴许有你想要的内容呢。
通常情况下,像'>','<'和'=='这类的比较运算符的优先级要低于计算运算符。所以下面的两段代码是一样的:
代码1:
if (a > b + c)
{
//…
}
代码2:
if (a > (b + c))
{
//…
}
但是,如果有&和|参与的运算就要注意了,下面的代码3写法未必是你想的那样,其实际运算顺序是代码4那样的。
代码3:
if (a & mask == b)
{
//…
}
代码4:
if (a & (mask == b))
{
//…
}
是不是有点奇怪呀,这是因为&和|这两个运算符的优先级低于'>','<'和'=='这类的比较运算符的优先级。
注:实际编程过程中,如果实在不清楚运算符的具体优先级关系,那么最好的保障就是在合适的地方添加上括号。
比如代码3,我们应该加上括号,也就是代码5那样,才是我们想要的运算顺序:
代码5:
if ((a & mask) == b)
{
//…
}
如果这篇文章对你有帮助,记得点赞和关注博主就行了^_^。
排版更好的内容见我博客的地址:http://www.only2fire.com/archives/125.html
注:转载请注明出处,谢谢!^_^