background image

C

       

 

语言运算符优先级 详细列表

 

 

    运算符的优先级:C语言中,运算符的运算优先级共分为 15 级。1 级最高,15 级最低。在
表达式中,优先级较高的先于优先级较低的进行运算。而在一个运算量两侧的运算符优先级
相同时,则按运算符的结合性所规定的结合方向处理。

运算符的结合性:C语言中各运算符的结合性分为两种,即左结合性(自左至右)和右

结合性(自右至左)。例如算术运算符的结合性是自左至右,即先左后右。如有表达式 x-y+z 则

应先与 -”号结合,执行 x-y 运算,然后再执行+z 的运算。这种自左至右的结合方向就称为

”  

左结合性 。而自右至左的结合方向称为 右结合性 。最典型的右结合性运算符是赋值运算

符。如 x=y=z,

由于 =”的右结合性,应先执行 y=z 再执行 x=(y=z)运算。C语言运算符中有不少

为右结合性,应注意区别,以避免理解错误。

 

优先级

运算符

名称或含义

使用形式

结合方向

说明

1

[]

数组下标

数组名[常量表达式]

左到右

 

()

圆括号

(表达式)/函数名

(形参表)

 

.

成员选择(对

象)

对象.成员名

 

->

成员选择(指

针)

对象指针->成员名

 

2

-

负号运算符

-表达式

右到左

单目运算

(类型)

强制类型转换

(数据类型)表达式

 

++

自增运算符

++变量名/变量名++

单目运算

--

自减运算符

--变量名/变量名--

单目运算

*

取值运算符

*指针变量

单目运算

&

取地址运算符

&变量名

单目运算

!

逻辑非运算符

!表达式

单目运算

~

按位取反运算符

~表达式

单目运算

sizeof

长度运算符

sizeof(表达式)

 

3

/

表达式/表达式

左到右

双目运算

*

表达式*表达式

双目运算