第四章——选择结构 第四节——几类运算符的优先级
| 优先级 | 运算符 | 名称/功能 | 结合性 | 说明 |
|---|---|---|---|---|
| 1 | () | 函数调用 | 左到右 | func() |
| 2 | [] | 数组下标 | 左到右 | arr[3] |
| 3 | -> | 指针访问结构体成员 | 左到右 | ptr->member |
| 4 | . | 结构体成员访问 | 左到右 | struct.member |
| 5 | ++(后缀) | 后缀自增 | 左到右 | a++ |
| 6 | --(后缀) | 后缀自减 | 左到右 | a-- |
| 7 | ++(前缀) | 前缀自增 | 右到左 | ++a |
| 8 | --(前缀) | 前缀自减 | 右到左 | --a |
| 9 | + | 正号 | 右到左 | 5 |
| 10 | - | 负号 | 右到左 | -x |
| 11 | ! | 逻辑非 | 右到左 | !flag |
| 12 | ~ | 按位取反 | 右到左 | ~0x0F |
| 13 | & | 取地址 | 右到左 | &var |
| 14 | * | 解引用(指针) | 右到左 | *ptr |
| 15 | (type) | 类型强制转换 | 右到左 | (int)3.14 |
| 16 | sizeof | 计算对象或类型大小 | 右到左 | sizeof(int) |
| 17 | * | 乘法 | 左到右 | a * b |
| 18 | / | 除法 | 左到右 | a / b |
| 19 | % | 取模 | 左到右 | a % b(仅整数) |
| 20 | + | 加法 | 左到右 | a + b |
| 21 | - | 减法 | 左到右 | a - b |
| 22 | << | 左移 | 左到右 | a << 2 |
| 23 | >> | 右移 | 左到右 | a >> 2 |
| 24 | < | 小于 | 左到右 | a < b |
| 25 | <= | 小于等于 | 左到右 | a <= b |
| 26 | > | 大于 | 左到右 | a > b |
| 27 | >= | 大于等于 | 左到右 | a >= b |
| 28 | == | 等于 | 左到右 | a == b |
| 29 | != | 不等于 | 左到右 | a != b |
| 30 | & | 按位与 | 左到右 | a & b |
| 31 | ^ | 按位异或 | 左到右 | a ^ b |
| 32 | | | 按位或 | 左到右 | a | b |
| 33 | && | 逻辑与 | 左到右 | a && b(短路特性) |
| 34 | || | 逻辑或 | 左到右 | a || b(短路特性) |
| 35 | ?: | 三目条件运算符 | 右到左 | a ? b : c |
| 36 | = | 赋值 | 右到左 | a = b |
| 37 | += | 加后赋值 | 右到左 | a += b |
| 38 | -= | 减后赋值 | 右到左 | a -= b |
| 39 | *= | 乘后赋值 | 右到左 | a *= b |
| 40 | /= | 除后赋值 | 右到左 | a /= b |
| 41 | %= | 取模后赋值 | 右到左 | a %= b |
| 42 | <<= | 左移后赋值 | 右到左 | a <<= b |
| 43 | >>= | 右移后赋值 | 右到左 | a >>= b |
| 44 | &= | 按位与后赋值 | 右到左 | a &= b |
| 45 | ^= | 按位异或后赋值 | 右到左 | a ^= b |
| 46 | |= | 按位或后赋值 | 右到左 | a |= b |
| 47 | , | 逗号运算符 | 左到右 | a = (b++, c = 5, d) |
记忆技巧 :
- 单目 > 算术 > 移位 > 关系 > 逻辑 > 赋值 。
- 标题: 第四章——选择结构 第四节——几类运算符的优先级
- 作者: 亓翎_Re-Tikara
- 创建于 : 2026-02-07 02:21:28
- 更新于 : 2026-02-07 02:26:19
- 链接: https://re-tikara.fun/Blog/posts/c757fdc0/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。