运算符优先级

 下表按照优先级顺序列出了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 @   vsxw  阅读(429)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
点击右上角即可分享
微信分享提示