繁体   English   中英

<< 运算符优先级与字符串比较

[英]<< 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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM