C语言的运算符顺序

在一个表达式中可能包含多个有不同运算符连接起来的、具有不同数据类型的数据对象;由于表达式有多种运算,不同的运算顺序可能得出不同结果甚至出现错误运算错误,因为当表达式中含多种运算时,必须按一定顺序进行结合,才能保证运算的合理性和结果的正确性、唯一性。

第一列 运算符 名称或含义 使用形式 结合方向
单目运算符 [] 数组下标 数组名[整型表达式] 左到右
() 圆括号 (表达式)/函数名(形参表)
. 成员选择(对象) 对象.成员名
-> 成员选择(指针) 对象指针->成员名
前述运算符 - 负号运算符 -算术类型表达式 右到左
(type) 强制类型转换 (纯量数据类型)纯量表达式
++ 自增运算符 ++纯量类型可修改左值表达式
自减运算符 –纯量类型可修改左值表达式
* 取值运算符 *指针类型表达式
& 取地址运算符 &表达式
! 逻辑非运算符 !纯量类型表达式
~ 按位取反运算符 ~整型表达式
sizeof 长度运算符 sizeof 表达式, sizeof(类型)
算术运算符 / 表达式/表达式 左到右
* 表达式*表达式
% 余数(取模) 整型表达式%整型表达式
+ 表达式+表达式
- 表达式-表达式
移位运算符 << 左移 整型表达式<<整型表达式
>> 右移 整型表达式>>整型表达式
关系运算符 > 大于 表达式>表达式
>= 大于等于 表达式>=表达式
< 小于 表达式<表达式
<= 小于等于 表达式<=表达式
== 等于 表达式==表达式
!= 不等于 表达式!= 表达式
逻辑运算符 & 按位与 整型表达式&整型表达式
^ 按位异或 整型表达式^整型表达式
| 按位或 整型表达式|整型表达式
&& 逻辑与 表达式&&表达式
|| 逻辑或 表达式||表达式
条件运算符 ?: 条件运算符 表达式1? 表达式2: 表达式3 右到左
赋值运算符 = 赋值运算符 可修改左值表达式=表达式
/= 除后赋值 可修改左值表达式/=表达式
*= 乘后赋值 可修改左值表达式*=表达式
%= 取模后赋值 可修改左值表达式%=表达式
+= 加后赋值 可修改左值表达式+=表达式
-= 减后赋值 可修改左值表达式-=表达式
<<= 左移后赋值 可修改左值表达式<<=表达式
>>= 右移后赋值 可修改左值表达式>>=表达式
&= 按位与后赋值 可修改左值表达式&=表达式
^= 按位异或后赋值 可修改左值表达式^=表达式
| = 按位或后赋值 可修改左值表达式|=表达式
符号运算符 , 逗号运算符 表达式,表达式,… 左到右

你可能感兴趣的:(C语言)