C++操作符的优先级
C++操作符的优先级 |
|||
操作符及其结合性 |
功能 |
用法 |
|
L L L |
:: :: :: |
全局作用域 类作用域 名字空间作用域 |
::name class::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 R |
== != |
相等 不等 |
Expr == expr Expr != expr |
R | & | 位与 | Expr & expr |
R | ^ | 位异或 | Expr ^ expr |
R | | | 位或 | Expr | expr |
R | && | 逻辑与 | Expr && expr |
R | || | 逻辑或 | Expr || expr |
R | ?: | 条件操作 | Expr ? expr : expr |
R R R R R |
= *=,/=,%= +=,-= <<=,>>= &=,|=,^= |
赋值操作 符合赋值操作 |
Lvalue= expr Lvalue+= expr …… |
R | throw | 抛出异常 | Throw expr |
L | , | 逗号 | Expr, expr |