8.4 操作符
成员访问操作符
成员访问操作符的优先级最高。
成员访问操作符 | 优先级 | 注解 |
---|---|---|
. | 0 | 成员访问 |
.? | 0 | 带null检查的成员访问 |
一元操作符
一元操作符优先级一致,主要查看其声明的先后顺序。
一元操作符 | 优先级 | 注解 |
---|---|---|
~ | -10 | 按位取反 |
! | -10 | 逻辑取反 |
- | -10 | 符号取反 |
+ | -10 | 取绝对值 |
++ | -10 | 自增 |
-- | -10 | 自减 |
二元操作符
在语法解析表达式中,二元表达式最复杂的。
二元操作符 | 优先级 | 注解 |
---|---|---|
* | -20 | 乘运算操作符 |
/ | -20 | 除运算操作符 |
% | -20 | 模运算操作符 |
+ | -30 | 加运算操作符 |
- | -30 | 减运算操作符 |
<< | -40 | 左移操作符 |
>> | -40 | 逻辑右移操作符 |
>>> | -40 | 算术右移操作符 |
< | -50 | 小于操作符 |
<= | -50 | 小于等于操作符 |
> | -50 | 大于于操作符 |
>= | -50 | 大于等于操作符 |
== | -60 | 等于操作符 |
!= | -60 | 不等于操作符 |
& | -70 | 位与操作符 |
^ | -71 | 位异或操作符 |
| | -72 | 位或操作符 |
&& | -80 | 逻辑与操作符 |
|| | -81 | 逻辑或操作符 |
三元操作符
三元操作符主要用于比较赋值、简单的比较分支操作。
三元操作符 | 优先级 | 注解 |
---|---|---|
? : | -90 |
赋值操作符
赋值类操作符的优先级一致,优先级最低。
赋值操作符 | 优先级 | 注解 |
---|---|---|
= | -100 | 赋值操作符 |
*= | -100 | 乘运算复合赋值操作符 |
/= | -100 | 除运算复合赋值操作符 |
%= | -100 | 模运算复合赋值操作符 |
+= | -100 | 加运算复合赋值操作符 |
-= | -100 | 减运算复合赋值操作符 |
&= | -100 | 位与运算复合赋值操作符 |
= | -100 | 位或运算复合赋值操作符 |
^= | -100 | 位异或运算复合赋值操作符 |
~= | -100 | 位取反运算复合赋值操作符 |
<<= | -100 | 左移运算复合赋值操作符 |
>>= | -100 | 逻辑右移运算复合赋值操作符 |
>>>= | -100 | 算术右移运算复合赋值操作符 |
其他操作符
括号表达式中的括号操作符,用于提升表达式的优先级,在算符优先解析算法,该系列是作为基本表达式进行解析的。
括号操作符 | 优先级 | 注解 |
---|---|---|
() | -10 | 括号操作符 |
[] | -10 | 数组下标 |
cast | -10 | 静态类型转换 |
dyn_cast | -10 | 动态类型转换 |
() | -10 | 函数调用 |