C语言运算符优先级

优先级结合性
1、 a++ (后++)从左往右
a- – (后- -)
( ) ( func( ) 函数调用)
{ } (复合字面量)
[ ] (数组成员访问 )
-> (结构体成员访问 )
. (结构体成员访问 )
2、++a (前++)从右往左
– -a (前- -)
* (解引用)
& (取地址)
sizeof( ) (求空间大小)
_Alignof( )(对齐)
-a (取负)
+a (取正)
!a (取非)
~a (按位取反)
3、 (int*)a (强制类型转换) 从左往右
4、a*b (乘)
a/b (除)
a%b (取余)
5、a+b (加)
a-b (减)
6、a<<i (按位左移)
a>>i ( 按位右移)
7、a<b (小于)
a<=b (小于等于)
a>b (大于)
a>=b (大于等于)
8、 a==b (等于)
a!=b (不等于)
9、 a&b (算数与)
10、 a^b (按位异或)
11、 a|b (按位或)
12、 a&&b (逻辑与)
13、 a||b (逻辑或)
14、 a>b ? a:b (三目运算) 从右往左
15、a=b (赋值) 从右往左
a+=b
a-=b
a*=b
a/=b
a%=b
a^=b
a&=b
a|=b
a<<=b
a>>=b
16、a=b , c=d (逗号)从左往右

以上来自C Primer Plus 第6版 P.667

发表评论

您的电子邮箱地址不会被公开。