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函数调用