[英]<< operator priority with string comparison
#include <iostream>
using namespace std;
int main() {
string line1("Mike");
cout << line1 < "mike" << endl;
return 0;
}
只有当我在比较周围使用括号时,上面的代码才能正确运行。 我认为这是因为这些操作的优先级。 有人可以向我解释一下吗? 谢谢
这就是我要问的。 如果
<
的优先级高于<<
,那么为什么上面的代码是错误的?
根据 C++ 的运算 符优先级规则,按位左移运算符<<
的优先级高于关系运算符<
[强调我的]:
C++ 运算符优先级
[...] 运算符从上到下按降序排列。
优先级:运算符
[...]
7 :
<<
(按位左移运算符)[...]
9 :
<
(关系运算符)
注意上面对降序的强调,意思是9并不意味着这个表中的优先级高于7 ,这可能是你在对这两个运算符进行优先级排序时所做的误解。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.