1、() 圆括号、[] 下标运算符、-> 指向结构体成员运算符、. 结构体成员运算符 自左至右结合
2、! 逻辑非运算符、~ 按位取反、++ 自增、-- 自减、- 负号、(类型)类型转换、
* 指针、& 取地址、sizeof 长度运算符 自右至左
3、* 乘法、/ 除法、% 求余 自左至右
4、+ 加法、- 减法 自左至右
5、<< 左移、>> 右移 自左至右
6、<、<=、>、>= 关系运算符 自左至右
7、== 等于运算符、!= 运算符 自左至右
8、& 按位与 自左至右
9、^ 按位异或 自左至右
10、| 按位或 自左至右
11、&& 逻辑与 自左至右
12、|| 逻辑或 自左至右
13、? : 条件运算符 自右至左
14、=、+=、*=、/=、%=、>>=、<<=、&=、^=、|= 赋值运算符 自右至左
15、,逗号运算符 自左至右
总结相关说明:
(1)同一优先级的运算符,运算符次序由结合方向决定。当中只有单目运算符、条件运算符、赋值
运算符的结合方向为自右至左,其余全为自左至右结合。
(2)不同运算符要求有不同的运算对象个数。条件运算符是C语言中惟一的一个三目运算符。
(3)大致归纳各类运算符的优先级:初等运算符 →单目运算符 →算术运算符(先乘除,后加减)
→关系运算符 →逻辑运算符(不包括!) →位运算符(&、^、|) →条件运算符 →赋值运算符
→逗号运算符。
阅读(1928) | 评论(0) | 转发(0) |