运算符优先级

 下表按照优先级顺序列出了C++的全部操作符。该表以两种颜色分割成不同的段,每段内各个操作符的优先级相同,且都高于后面各段中的操作符。

运算符优先级
        结合律  运算符  功能  用法

   说明 

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

 cast-namestatic_castdynamic_castconst_castreinterpret_cast中的一种。dynamic_cast支持运行时类型识别。

posted @ 2017-09-13 22:50  vsxw  阅读(427)  评论(0编辑  收藏  举报