运算符优先级表


运算符优先级表

结合律 运算符 功能 使用形式
:: 全局作用域 ::name
:: 类作用域 class::name
:: 命名空间作用域 namespace::name
. 成员选择 object.name
-> 成员选择 pointer->member
[] 下标 expr[expr]
() 函数调用 name(expr_list)
() 类型构造 type(expr_list)
++ 后置递增运算符 lvalue++
-- 后置递减运算符 lvalue--
typeid 类型ID typeid(type)
typeid 运行时类型ID typeid(expr)
explicit_cast 类型转换 cast_name(expr)
++ 前置递增运算符 ++lvalue
-- 前置递减运算符 --lvalue
~ 位求反 ~expr
! 逻辑非 !expr
- 一元负号 -expr
+ 一元正号 +expr
* 解引用 *expr
& 取地址 &lvalue
() 类型转换 (type)expr
sizeof 对象的大小 sizeof expr
sizeof 类型的大小 sizeof(type)
sizeof... 参数包的大小 sizeof ...(name)
new 创建对象 new type
new [] 创建数组 new type[size]
delete 释放对象 delete expr
delete[] 释放数组 delete [] expr
nonxcept 能否抛出异常 noexcept(expr)
->* 指向成员选择的指针 ptr->*ptr_to_member
.* 指向成员选择的指针 obj.*ptr_to_member
* 乘法 expr*expr
/ 除法 expr /expr
% 取余 expr%expr
+ 加法 expr+expr
- 减法 expr-expr
<< 向左移位 expr<
>> 向右移位 expr>>expr
< 小于 expr
<= 小于等于 expr<=expr
> 大于 expr>expr
>= 大于等于 expr>=expr
== 相等 expr==expr
!= 不相等 expr!=expr
& 位与 expr&expr
^ 位异或 expr^expr
| 位或 expr|expr
&& 逻辑与 expr&&expr
|| 逻辑或 expr||expr
?: 条件 expr?expr:expr
= 赋值 lvalue = expr
*=,/=,%= 复合赋值
+=,-= 复合赋值
<<=,>>= 复合赋值
&=,|=,^= 复合赋值
throw 抛出异常 throw expr
逗号 expr,expr