运算符优先级表

C 语言的运算符有十五个优先级,优先级数值越小,优先级越高。相同的优先级的运算符,具体要看运算符的结合性来决定哪个运算符先计算。

C 语言运算符优先级表

优先级
运算符
说明
结合性
1
++ -- () [] . -> (type){list}
后置自增/减、函数调用、数组下标、结构体(联合体)成员访问、结构体(联合体)指针成员访问、复合字面值(C99)
自左向右
2
++ -- + - ! ~ (type) * & sizeof _Alignof
前置自增/减、正负号、逻辑非、按位取反、强制类型转换、解引用、取地址、求占用字节数、查询对齐(C11)
自右向左
3
* / %
乘、除、取模(求余数)
自左向右
4
+ -
加、减
自左向右
5
<< >>
左移、右移
自左向右
6
< <= > >=
关系运算符比较
自左向右
7
== !=
关系运算符等于、不等于
自左向右
8
&
按位与
自左向右
9
^
按位异或
自左向右
10
|
按位或
自左向右
11
&&
逻辑与
自左向右
12
||
逻辑或
自左向右
13
?:
条件运算符(三元运算符)
自右向左
14
= += -= *= /= %= <<= >>= &= ^= \|=
赋值运算符
自右向左
15
,
逗号运算符
自左向右