c++ - << 运算符优先级与字符串比较
问题描述
#include <iostream>
using namespace std;
int main() {
string line1("Mike");
cout << line1 < "mike" << endl;
return 0;
}
仅当我在比较周围使用括号时,上面的代码才能正确运行。我认为这是因为这些操作的优先级。有人可以向我解释一下吗?谢谢
解决方案
这就是我要问的。如果 的
<
优先级高于<<
,为什么上面的代码是错误的?
根据C++ 的运算符优先级规则,按位左移运算符 <<
的优先级高于关系运算符 <
[强调我的]:
C++ 运算符优先级
[...] 运算符从上到下按降序排列。
优先级:运算符
[...]
7:(
<<
按位左移运算符)[...]
9:(
<
关系运算符)
注意上面对降序的强调,这个表中9不代表比7高,这可能是你对这两个运算符进行优先级排序时的误解。
推荐阅读
- c# - 如何通过 Selenium 和 C# 从子节点获取属性
- uwp - 使用打包项目将 exe 注册到自定义协议处理程序
- sql-server - 为什么 GETDATE() 不能用作过程参数的默认值或 EXECUTE 语句中的值?
- python - 删除与小于指定大小的组对应的行
- ios - 在集合视图中执行 numberof 部分时发生崩溃
- python - 将参数传递给在 docker 容器中运行的 python 脚本
- google-play - 我们在Play商店发布了应用程序,但我需要测试,如何降级应用程序?
- docker - Docker“登录成功”但仍无法推送到 GCP 私有注册表
- javascript - 到达.js 没有检测到注入的元素
- angular - 角度 7 - http get 返回空