以下参数测试的顺序是什么(在C++中)?
if (a || b && c) { }
我刚刚在我们的应用程序中看到了这个代码,我讨厌它,我想添加一些括号来澄清顺序.但我不想添加括号,直到我知道我将它们添加到正确的位置.
编辑:接受的答案和跟进
这个链接有更多的信息,但它并不完全清楚它的含义.好像|| 和&&是相同的优先顺序,在这种情况下,它们从左到右进行评估.
http://msdn.microsoft.com/en-us/library/126fe14k.aspx
[ http://www.cppreference.com/wiki/operator_precedence](通过谷歌搜索"C++运算符优先级")
该页面告诉我们,第13组中的&&优先级高于|| 在第14组中,表达式相当于|| (b && c).
不幸的是,维基百科文章[ http://en.wikipedia.org/wiki/Operators_in_C_and_C%2B%2B#Operator_precedence]不同意这一点,但由于我的桌面上有C89标准并且它同意第一个网站,我'我要修改维基百科的文章.