#include <iostream>
using namespace std;
int main() {
string line1("Mike");
cout << line1 < "mike" << endl;
return 0;
}
仅当我在比较中使用括号时,以上代码才能正确运行。我认为这是因为这些操作的优先级而发生的。有人可以向我解释吗?谢谢
答案 0 :(得分:1)
这就是我要的。如果
<
的优先级比<<
高,那么为什么上面的代码是错误的?
根据C ++的operator precedence rules,按位左移运算符 <<
的优先级高于关系运算符 <
[ 强调我的]:
C ++运算符优先级
[...]运算符从上到下列出,以降序排列。
优先级:操作员
[...]
7 :
<<
(按位左移运算符)[...]
9 :
<
(关系运算符)
请注意,上面强调了降序,这意味着 9 并不意味着 的优先级比 7 高表格,这可能是您在对这两个运算符进行优先排序时做出的误解。