C语言运算符的优先级与结合性

结合性:左结合是从左到右依次执行,右结合是从右到左依次执行。

特点总结:个人对一些特别的优先级的理解。

优先级

运算符

名称或作用

运算类型

结合方向

特点总结

1

()

[]

->

.

小括号运算符

下标运算符

指向结构成员运算符

结构成员运算符

 

左结合

 

2

!

~

++,--

-

(类型)

*,&

sizeof

逻辑非运算符

按位取反运算符

自增/减运算符

负号运算符

类型转换运算符

指针/取地址运算符

求类型长度运算符

单目运算

右结合

 

3

*,/,%

乘法/除法/求余运算符

双目运算、算术运算

左结合

乘除取余优先于加减

4

+,-

加法/减法运算符

双目运算、算术运算

左结合

5

<<,>>

左移/右移运算符

双目运算、位运算

左结合

位移低于算术运算

于是在二分时可以写 mid = l + r >> 1(虽不建议)

6

<,<=,>,>=

小于/小于等于/大于/大于等于

双目运算、关系运算

左结合

大小比较优先于等于/不等于比较

7

==,!=

判等/判不等运算符

双目运算

左结合

8

&

按位与

双目运算、位运算

左结合

 

9

^

按位异或

双目运算、位运算

左结合

 

10

|

按位或

双目运算、位运算

左结合

 

11

&&

逻辑与

双目运算、逻辑运算

左结合

“与的优先级高于“或”

12

||

逻辑或

双目运算、逻辑运算

左结合

13

?:

条件运算符

三目运算

右结合

 

14

=,+=,-=,*=,/=,%=

>>=,<<=,&=,^=,|=

赋值运算符

双目运算

右结合

 

15

,

逗号运算符(顺序求值运算符)

 

左结合

 

posted @ 2018-01-31 23:47  SandyChn  阅读(790)  评论(0编辑  收藏  举报