c++运算符优先级
作者:野牛程序员:2026-01-30 09:02:38C++程序设计阅读 1986
c++运算符优先级
以下内容对 C++ 运算符优先级 进行系统整理,适合学习、教学、考试与查阅使用,按照 优先级从高到低 排列,并标注结合性,避免混淆与误判。
一、C++ 运算符优先级总表(从高到低)
| 优先级 | 运算符 | 含义 | 结合性 |
|---|---|---|---|
| 1 | :: | 作用域解析 | 从左到右 |
| 2 | () [] . -> ++ -- | 函数调用、数组、成员访问、自增自减 | 从左到右 |
| 3 | ++ -- + - ! ~ * & sizeof | 单目运算符 | 从右到左 |
| 4 | * / % | 乘、除、取余 | 从左到右 |
| 5 | + - | 加、减 | 从左到右 |
| 6 | << >> | 位移 | 从左到右 |
| 7 | < <= > >= | 关系比较 | 从左到右 |
| 8 | == != | 相等判断 | 从左到右 |
| 9 | & | 按位与 | 从左到右 |
| 10 | ^ | 按位异或 | 从左到右 |
| 11 | ` | ` | 按位或 |
| 12 | && | 逻辑与 | 从左到右 |
| 13 | ` | ` | |
| 14 | ?: | 条件运算符 | 从右到左 |
| 15 | = += -= *= /= %= 等 | 赋值 | 从右到左 |
| 16 | , | 逗号运算符 | 从左到右 |
二、必须牢记的核心规律
1️⃣ 算术 > 关系 > 逻辑 > 赋值
a + b > c && d == e
实际计算顺序:
a + b>==&&
2️⃣ 单目运算符优先级极高
int x = 5; cout << -x * 2;
等价于:
cout << ((-x) * 2);
3️⃣ 赋值运算符是 从右向左
a = b = c = 10;
等价于:
a = (b = (c = 10));
4️⃣ 逻辑运算优先级顺序
! > && > ||
示例:
if (!a || b && c)
等价于:
if ( (!a) || (b && c) )
三、初学者最容易出错的情况
❌ 错误理解 1:== 高于 =
if (a = b == c) // 合法,但极易出错
实际顺序:
b == c → a = (结果)
❌ 错误理解 2:&& 高于 ||
if (a || b && c)
真实顺序:
if (a || (b && c))
❌ 错误理解 3:忽略括号最安全原则
a + b << c
等价于:
(a + b) << c
四、强烈推荐的编程习惯
✔ 逻辑判断一律加括号
✔ 不依赖“记忆型优先级”写代码
✔ 考试与竞赛中明确写出计算顺序
示例(推荐写法):
if ( (a > b) && (c < d) )
五、速记口诀(教学常用)
单目最先算,乘除再加减
位移关系等,逻辑赋值后
括号能救命,安全写在前
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892

- 上一篇:C 与 C++ 各个版本演进全梳理
- 下一篇:
