C++ 运算符 优先级
时间: 2025-05-05 09:04:51 浏览: 25
### C++ 运算符优先级表
C++ 的运算符优先级定义了表达式中各运算符的计算顺序。当一个复杂表达式包含多个运算符时,优先级较高的运算符会先被执行[^1]。
以下是完整的 C++ 运算符优先级列表(从高到低排列),涵盖了大部分常见的运算符:
#### 单目运算符
| 优先级 | 类型 | 运算符 |
|--------|--------------------|---------------------------------|
| 1 | 后缀 | `()`, `[]`, `->`, `.`, `postfix ++`, `postfix --`[^5] |
| 2 | 前缀 | `prefix ++`, `prefix --`, `+`, `-`, `!`, `~`, `(type)`, `*`, `&`, `sizeof`, `new`, `delete`[^3] |
#### 多目运算符
| 优先级 | 类型 | 运算符 |
|--------|------------------|------------------------------|
| 3 | 成员访问 | `.*`, `->*` |
| 4 | 求值 | `*`, `/`, `%` |
| 5 | 加减法 | `+`, `-` |
| 6 | 移位操作 | `<<`, `>>` |
| 7 | 关系比较 | `<`, `>`, `<=`, `>=` |
| 8 | 相等性判断 | `==`, `!=` |
| 9 | 逻辑与 | `&` |
| 10 | 逻辑异或 | `^` |
| 11 | 逻辑或 | `\|` |
| 12 | 条件测试 | `&&` |
| 13 | 或者条件测试 | `\|\|` |
| 14 | 条件表达式 | `?:` |
| 15 | 赋值 | `=`, `+=`, `-=` , `*=` , `/=`, etc.|
需要注意的是,在某些情况下,即使知道了运算符的优先级,仍然可能需要通过显式的括号来改变默认的求值顺序[^4]。
对于 C++17 及之后的标准版本新增的一些特殊用途运算符未在此表格中列出,例如三向比较运算符 (`<=>`) 等[^2]。
```cpp
// 示例代码展示如何利用优先级解析表达式
int a = 5, b = 3;
bool result = (a + b * 2 >= 10 && !(b < 2)); // 正确理解此语句需掌握优先级规则
```
阅读全文
相关推荐










