响水凹

欢迎来到 Guang-Wen Duan (Dennis Duan) 的个人 Wiki

用户工具

站点工具


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