()
圆括号
[]
下标运算符
->
指向结构体成员运算符
.
结构体成员运算符
2级优先级
!
逻辑非运算符
~
按位取反运算符
++
自增运算符
--
自减运算符
-
负号运算符
(类型)
类型转换运算符
*
指针运算符
&
地址与运算符
sizeof
长度运算符
3级优先级
*
乘法运算符
/
除法运算符
%
取余运算符
4级优先级
+
加法运算符
-
减法运算符
5级优先级
<<
左移运算符
>>
右移运算符
6级优先级
<、<=、>、>=
关系运算符
7级优先级
==
等于运算符
!=
不等于运算符
8级优先级
&
按位与运算符
9级优先级
^
按位或运算符
10级优先级
|
按位异或运算符
11级优先级
&&
逻辑与运算符
12级优先级
||
逻辑或运算符
13级优先级
?
:
条件运算符
14级优先级
=、+=、-=、*=、/=、%=>、
>=、<、<=、&、=、^=、|=
以上几个为赋值运算符
15级优先级
,
逗号运算符
总共15级,完毕。
亲手抄之武汉大学
C语言程序设计
优先级 运算符 含义 要求运算对象的个数 结合方向1 ( ) 圆括号 自左至右
[ ] 下标运算符
-> 指向结构体成员运算符
• 结构体成员运算符
2 ! 逻辑非运算符 1
(单目运算符) 自右至左
• 按位取反运算符
++ 自增运算符
― ― 自减运算符
- 符号运算符
(类型) 类型转换运算符
* 指针运算符
& 取地址运算符
sizeof 长度运算符
3 * 乘法运算符 2
(双目运算符) 自左至右
/ 除法运算符
% 求余运算符
4 + 加法运算符 2
(双目运算符) 自左至右
- 减法运算符
5 << 左移运算符 2
(双目运算符) 自左至右
>> 右移运算符
6 < <= > >= 关系运算符 2
(双目运算符) 自左至右
7 == 等于运算符 2
(双目运算符) 自左至右
!= 不等于运算符
8 & 按位与运算符 2
(双目运算符) 自左至右
9 ^ 按位异或运算符 2
(双目运算符) 自左至右
10 | 按位或运算符 2
(双目运算符) 自左至右
11 && 逻辑与运算符 2
(双目运算符) 自左至右
12 || 逻辑或运算符 2
(双目运算符) 自左至右
13 ? : 条件运算符 3
(三目运算符) 自右至左
14 = += -= *= /= %= >>= <<=
&= ^= 赋值运算符 2
(双目运算符) 自右至左
15 , 逗号运算符
(顺序求值运算符) 自左至右