首页 > 代码库 > c语言操作符优先级

c语言操作符优先级

运算符结合性
() [] -> .

自左至右

! ~ ++ -- - (type) * & sizeof

自右至左

* / %

自左至右

+ -

自左至右

<< >>

自左至右

< <= > >=

自左至右

== !=

自左至右

&

自左至右

^

自左至右

|

自左至右

&&

自左至右

|| 

自左至右

?:

自右至左

=

自右至左

,

自左至右

1.优先级最高的并不是真正意义上的运算符,包括数组下标,函数调用操作符和结构成员选择符。

2.单目运算符是所有真正意义上的运算符里优先级最高的。*p++等价于*(p++)。

3.优先级比单目运算符要低的就是双目运算符和三目运算符。它们的顺序是:算术运算符、移位运算符、关系运算符、逻辑运算符、赋值运算符、条件运算符。

4.任何一逻辑运算符的优先级都比任何一关系运算符要低。

5.移位运算符的优先级比算术运算符低,比关系运算符高。