C++运算符优先级

发布时间 2023-09-06 17:10:22作者: Thunder_S

所有(可能)运算符

共分为 18 级。

第 1 级

运算符 含义
:: 作用域解析运算符

第 2 级

运算符 含义
() 函数调用
() 值构造,即 type(expr)
[] 数组下标
-> 间接成员运算符
. 直接成员运算符
const_cast 专用的类型转换
dynamic_cast 专用的类型转换
reinterpret_cast 专用的类型转换
static_cast 专用的类型转换
typeid 类型标识
++ 加 1 运算符,后缀
-- 减 1 运算符,后缀

第 3 级

运算符 含义
! 逻辑非
~ 按位非
+ 正号
- 负号
++ 加 1 运算符,前缀
-- 减 1 运算符,前缀
& 地址
* 解除引用(间接值)
() 类型转化,即 (type)expr
sizeof() 长度,以字节为单位
new 动态分配内存
new[] 动态分配数组
delete 动态释放内存
delete[] 动态释放数组

第 4 级

运算符 含义
.* 成员解除引用
->* 间接成员解除引用

第 5 级

运算符 含义
*
/
%

第 6 级

运算符 含义
+
-

第 7 级

运算符 含义
<< 左移
>> 右移

第 8 级

运算符 含义
< 小于
<= 小于等于
>= 大于等于
> 大于

第 9 级

运算符 含义
== 等于
!= 不等于

第 10 级

运算符 含义
& 按位与

第 11 级

运算符 含义
^ 按位异或

第 12 级

运算符 含义
| 按位或

第 13 级

运算符 含义
&& 逻辑与

第 14 级

运算符 含义
|| 逻辑或

第 15 级

运算符 含义
?: 三目运算符

第 16 级

运算符 含义
= 赋值
*= 乘并赋值
/= 除并赋值
%= 模并赋值
+= 加并赋值
-= 减并赋值
&= 按位与并赋值
^= 按位异或并赋值
` =`
<<= 左移并赋值
>>= 右移并赋值

第 17 级

运算符 含义
throw 引发异常

第 18 级

运算符 含义
, 将两个表达式合并成一个

重要运算符优先级

  1. 后缀 ++,--
  2. 逻辑非 !,按位非 ~,正负号,前缀 ++,--
  3. 乘,除,模。
  4. 左移右移。
  5. 小于(等于),大于(等于)。
  6. (不)等于。
  7. 按位与 &
  8. 按位异或 ^
  9. 按位或 |