computer:c:tips:precedence_of_operators
操作符优先级列表
C语言有着过于丰富的操作符(operator),记住各个操作符的优先级不是一件容易的事,必要时应使用括号(parentheses)以保证代码的清晰可读。
下面是所有的操作符列表:
操作符 | 说明 | 优先级 | 结合性 |
---|---|---|---|
(expr) | 括号表达式 | 16 | |
a[k] | 数组下标 | 左结合(left-to-right) | |
f(…) | 函数调用 | ||
. | struct/union成员选择 | ||
-> | struct/union成员选择 | ||
++ -- | 后缀形式 | ||
(type name) {init} | compound literal (C99) | ||
++ -- | 前缀形式 | 15 | 右结合(right-to-left) |
sizeof | |||
~ | 位反(bitwise not) | ||
! | 逻辑非(logical not) | ||
- + | 一元加/减 | ||
& | 取地址 | ||
* | 指针引用 | ||
(type name) | 强制转换 | 14 | |
* / % | 二元乘/除/模 | 13 | 左结合(left-to-right) |
+ - | 二元加/减 | 12 | |
<< >> | 左移/右移 | 11 | |
< > <= >= | 小于/大于/小于等于/大于等于 | 10 | |
== != | 等于/不等于 | 9 | |
& | 位与(bitwise and) | 8 | |
^ | 位异或(bitwise xor) | 7 | |
| | 位或(bitwise or) | 6 | |
&& | 逻辑与(logical and) | 5 | |
|| | 逻辑或(logical or) | 4 | |
? : | 三元条件操作符 | 3 | 右结合(right-to-left) |
= += -= *= /= %= <<= >>= &= ^= |= | 赋值 | 2 | |
, | 逗号操作符 | 1 | 左结合(left-to-right) |
computer/c/tips/precedence_of_operators.txt · 最后更改: 2014/11/01 02:02 由 127.0.0.1