计算机
C语言运算符分类
1级优先级(左结合) () 圆括号;[]下标运算符;->指向结构体成员运算符;. 结构体成员运算符。
2级优先级(右结合) !逻辑非运算符;~按位取反运算符;++前缀增量运算符;--前缀减量运算符;+正号运算符;-负号运算符;(类型)类型转换运算符;*指针运算符;&地址运算符;sizeof长度运算符。
3级优先级(左结合) *乘法运算符;/除法运算符;%取余运算符。 4级优先级(左结合) +加法运算符;-减法运算符。
5级优先级(左结合) <>右移运算符。
6级优先级(左结合) 、>=关系运算符。
7级优先级(左结合) ==等于运算符;!=不等于运算符。
8级优先级(左结合) &按位与运算符。
9级优先级(左结合) ^按位异或运算符。
10级优先级(左结合) |按位或运算符。
11级优先级(左结合) &&逻辑与运算符。
12级优先级(左结合) ||逻辑或运算符。
13级优先级(右结合) ? :条件运算符。
14级优先级(右结合) =、 +=、 -=、 *=、 /=、 %=、 &=、 ^=、 |=、 <<=、 >>=赋值运算符。
15级优先级(左结合) ,逗号运算符。
优先级从上到下依次递减,最上面具有最高的优先级,逗号操作符具有最低的优先级。
所有的优先级中,只有三个优先级是从右至左结合的,它们是单目运算符、条件运算符、赋值运算符。其它的都是从左至右结合。
具有最高优先级的其实并不算是真正的运算符,它们算是一类特殊的操作。()是与函数相关,[]与数组相关,而->及.是取结构成员。