说明:表中以双横线分割成不同的段,每段内各个操作符的优先级相同,且都高于后面各段中的操作符。
操作符的优先级 | |||
操作符及其结合性 |
功能 |
用法 | |
L L L |
:: :: :: |
全局作用域 类作用域 名字空间作用域 |
:: name calss :: name namespace :: name |
L L L L L |
. -> [] () () |
成员选择 成员选择 下标 函数调用 类型构造 |
object.member pointer->member variable[expr] name(expr_list) type(expr_list) |
R R R R R |
++ -- Typeid Typeid 显式强制类型转换 |
后自增操作 后自减操作 类型ID 运行时类型ID 类型转换 |
Lvalue++ Lvalue— Typeid(type) Typeid(expr) Cast_name<type>(expr) |
R R R R R R R R R R R R R R |
Sizeof Sizeof ++ -- ~ ! - + * & () New Delete Delete [] |
对象的大小 类型的大小 前自增操作 前自减操作 位求反 逻辑非 一元负号 一元正号 解引用 取地址 类型转换 创建对象 释放对象 释放数组 |
Sizeof expr Sizeof(type) ++lvalue --lvalue ~expr !expr -expr +expr *expr &expr (type)expr New type Delete expr Delete []expr |
L L |
->* .* |
指向成员操作的指针 指向成员操作的指针 |
Ptr->*ptr_to_member Obj.*ptr_to_member |
L L L |
* / % |
乘法 除法 求模(求余) |
Expr * expr Expr / expr Expr % expr |
L L |
+ - |
加法 减法 |
Expr + expr Expr - expr |
L L |
<< >> |
位左移 位右移 |
Expr << expr Expr >> expr |
L L L L |
< <= > >= |
小于 小于等于 大于 大于等于 |
Expr < expr Expr <= expr Expr > expr Expr >= expr |
L L |
== != |
相等 不等 |
Expr == expr Expr != expr |
L |
& |
位与 |
Expr & expr |
L |
^ |
位异或 |
Expr ^ expr |
L |
| |
位或 |
Expr | expr |
L |
&& |
逻辑与 |
Expr && expr |
L |
|| |
逻辑或 |
Expr || expr |
R |
? : |
条件操作 |
Expr ? expr : expr |
R R R R R |
= *= , /= , %=, += , -=, <<= , >>= , &= , |= , ^= |
赋值操作 复合赋值操作 |
Lvalue = expr Lvalue += expr等等 |
R |
Throw |
抛出异常 |
Throw expr |
L |
, |
逗号 |
Expr, expr |
此表为本人从C++Primer上的摘录下,在word上辛苦制作而成,希望大家有什么新发现也分享出来,大家共同学习共同进步……
——桑海整理