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