常见运算符优先级如下:
运算符 | 结合方式 | 描述 | 优先级 |
---|---|---|---|
::(命名空间) | 由左向右 | 1 | |
( )、[]、.(获取对象)、->(取对象指针的成员)、++(后自增)、--(后自减) | 由左向右 | 2 | |
!(逻辑非)、~(按位取反)、++(前递增)、--(前递减)、+(正号)、-(负号) | 由右向左 | 单目运算符 | 3 |
*(乘法)、/(除法)、%(取模) | 由左向右 | 乘除取模 | 4 |
+(加法)、-(减法) | 由左向右 | 加减运算符 | 5 |
<<(左移)、>>(右移) | 由左向右 | 位移运算符 | 6 |
<(小于)、<=(小于等于)、>(大于)、>=(大于等于) | 由左向右 | 关系运算符 | 7 |
==(等于)、!=(不等于)、===(全等于)、!==(全不等于) | 由左向右 | 等式运算符 | 8 |
&(按位与) | 由左向右 | 位运算符 | 9 |
^(按位异或) | 由左向右 | 位运算符 | 10 |
|(按位或) | 由左向右 | 位运算符 | 11 |
&&(逻辑与) | 由左向右 | 逻辑运算符 | 12 |
||(逻辑非) | 由左向右 | 逻辑运算符 | 13 |
?:(三元运算符) | 由右向左 | 条件运算符 | 14 |
=(赋值)、+=(加后赋值)、-=(减后赋值)、*=(乘后赋值)、/=(除以后赋值)、%=(取余后赋值)、&=(按位与后赋值)、|=(按位或后赋值)、^=(按位异或后赋值)、<<=(左移后赋值)、>>=(右移后赋值) | 由右向左 | 赋值运算符 | 15 |
, | 由左向右 | 逗号运算符 | 16 |