C++操作符的优先级

操作符及其结合性

功能

用法



L
:: 
:: 
::
全局作用域  
类作用域  
名字空间作用域
::name 
class::name 
namespace::name





-> 
[] 
() 
() 
成员选择  
成员选择  
下标  
函数调用  
类型构造  
object.member 
pointer->member 
variable[expr] 
name(expr_list) 
type(expr_list)




++ 
-- 
typeid 
typeid 
显示强制类型转换  
后自增操作  
后自减操作  
类型ID 
运行时类型ID 
类型转换  
lvalue++ 
lvalue-- 
typeid(type) 
typeid(expr) 
cast_name<type>(expr)













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
->* 
.*
指向成员操作的指针  
指向成员操作的指针
ptr->*ptr_to_member 
obj.*ptr_to_member


L


%
乘法  
除法  
求模(求余)
expr * expr 
expr / expr 
expr % expr

L

-
加法  
减法
expr + expr 
expr - expr

L
<<  
>>
位左移  
位右移
expr << expr 
expr >> expr



L
<  
<= 
>  
>=
小于  
小于或等于  
大于  
大于或等于
expr < expr 
expr <= expr 
expr > expr 
expr >= expr

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

*=,/=,%= 
+=,-= 
<<=,>>= 
&=,|=,^=
赋值操作  
复合赋值操作
Lvalue= expr 
Lvalue+= expr 
……
R throw 抛出异常 Throw expr
L , 逗号 Expr, expr
记忆方法:
--摘自《C语言程序设计实用问答》       
    问题:如何记住运算符的15种优先级和结合性?    
    解答:C语言中运算符种类比较繁多,优先级有15种,结合性有两种。    
    如何记忆两种结合性和15种优先级?下面讲述一种记忆方法。    
    结合性有两种,一种是自左至右,另一种是自右至左,大部分运算符的结合性是自左至右,只有单目运算符、三目运算符的赋值运算符的结合性自右至左。    
    优先级有15种。记忆方法如下:    
    记住一个最高的:构造类型的元素或成员以及小括号。    
    记住一个最低的:逗号运算符。    
    剩余的是一、二、三、赋值。    
    意思是单目、双目、三目和赋值运算符。    
    在诸多运算符中,又分为:    
    算术、关系、逻辑。    
    两种位操作运算符中,移位运算符在算术运算符后边,逻辑位运算符在逻辑运算符的前面。再细分如下:    
    算术运算符分     *,/,%高于+,-。    
    关系运算符中,〉,〉=,<,<=高于==,!=。    
    逻辑运算符中,除了逻辑求反(!)是单目外,逻辑与(&&)高于逻辑或(||)。    
    逻辑位运算符中,除了逻辑按位求反(~)外,按位与(&)高于按位半加(^),高于按位或(|)。    
    这样就将15种优先级都记住了,再将记忆方法总结如下:    
    去掉一个最高的,去掉一个最低的,剩下的是一、二、三、赋值。双目运算符中,顺序为算术、关系和逻辑,移位和逻辑位插入其中。

转载于:https://www.cnblogs.com/xuechao/archive/2011/10/10/2205301.html

【转载】C++操作符的优先级相关推荐

  1. 详解:操作符的优先级

    前言: 复杂表达式的求值有三个影响的因素. 1. 操作符的优先级 2. 操作符的结合性 3. 是否控制求值顺序 两个相邻的操作符先执行哪个?取决于他们的优先级.如果两者的优先级相同,取决于他们的结合性 ...

  2. C/C++操作符的优先级和结合性问题浅析

    两个相邻操作符的执行顺序由它们的优先级决定.例如: a + b*c,在这个表达式中,乘法和加法操作符是两个相邻的操作符,由于乘法的优先级比加法高,所以乘法运算先于加法运算执行.编译器在这里别无选择,它 ...

  3. php中括号的优先级是不是最高的,理解php中操作符的优先级和结合性

    一般地说,操作符具有一组优先级,也就是执行他们的顺序. 操作符还具有结合性,也就是同一优先级的操作符的执行顺序.这种顺序通常有从左到右(简称左).从右到左(简称右)或者不相关. 下表中给出的是php中 ...

  4. C++操作符的优先级 及其记忆方法

     优先级 操作符 描述 例子 结合性 1 () [] -> . :: ++ -- 调节优先级的括号操作符 数组下标访问操作符 通过指向对象的指针访问成员的操作符 通过对象本身访问成员的操作符 ...

  5. [转载]C#操作符??和?:

    先看如下代码: string strParam = Request.Params["param"]; if ( strParam== null ) {     strParam= ...

  6. python中各操作符的优先级_在Python中实现操作符优先级的一般方法是什么

    我不确定您对多少细节感兴趣,但听起来您似乎在寻求实现一个解析器.通常有两个步骤: lexer读取文本并将其转换为标记.例如,它可能读取"2+3*2"并将其转换为INTEGERPLU ...

  7. JAVA中操作符的优先级

    一元数学比较有逻辑 三元赋值就可以! 一元操作符 数学操作符 比较操作符 逻辑操作符 三元操作符 赋值操作符

  8. [转载]JAVA操作符

    几乎所有运算符都只能操作"主类型"(Primitives).例外是"="."= ="和"! =",它们能操作所有对象.除 ...

  9. 【转载】C++操作符

    C++操作符介绍 优先级 运算符 含    义 示  例 结合方向 要求运算 对象的个数 可重载性 1 :: 全局解析 ::x 自右至左 一元操作符 不可重载 :: 类域解析 X::x 自左至右 二元 ...

  10. c语言中 的优先级几级,C语言中的操作符优先级的详细介绍

    C语言中的操作符优先级的详细介绍 C语言中操作符的优先级大全, 当然c++, Objective-C,大部分语言都试用. 下面是来自The C Programming Language 2th的总结. ...

最新文章

  1. 使用Prometheus+Grafana监控JVM
  2. 山社电机: SAMSR -外部接口测试
  3. 安装acdsee 3.1后出错
  4. java 判断是否整形_java判断是否基本类型
  5. cordova报错:Error: Failed to find ‘ANDROID_HOME‘ environment variable. Try setting setting it manually
  6. C语言 const 修饰函数返回值 - C语言零基础入门教程
  7. python3.x和python2.x唯一区别_Python3.x和Python2.x的区别介绍
  8. 外媒:台积电准备明年下半年采用3nm工艺为苹果生产芯片
  9. sql for xml path用法
  10. php的对象和数组应该学js,JavaScript数组与对象的常用方法及 json 的序列化
  11. Linux C/C++开发、嵌入式软件开发面试记录 ( 四)
  12. 阶段3 2.Spring_09.JdbcTemplate的基本使用_4 JdbcTemplate的CRUD操作
  13. serializable接口_面试官:RandomAccess这个空接口有何用?
  14. 《 Python笔记》— 将pyinstalller打包封装的exe文件反编译为pyc文件和python文件
  15. canvas 小球碰撞
  16. linux查看iozone安装目录,IOZone的基本使用
  17. 巨详细一文教你如何撰写商业计划书
  18. java计算费用类题目
  19. 潇洒老师分享的小知识:注塑模具“压模”的原因和预防措施
  20. 光荣特库摩游戏《莱莎的炼金工房》宣布动画化,2023 年 7 月开播

热门文章

  1. 线性代数第八章 λ 矩阵 定理8 多项式最大公约数的性质
  2. 一道很有趣的多元函数求极值问题
  3. 微型计算机用于梯群控制时 其优点是,下列根尖周病的治疗要求中,说法不对的是A.要求无菌操作技术B.根管内应为无菌环境C.炎症渗出物应...
  4. 分析一个在高并发下的财务支付锁的问题
  5. Linux 查看端口状态 netstat
  6. CSS之cursor用法
  7. P5018 对称二叉树
  8. 第 7 章 Neutron - 066 - Neutron 网络基本概念
  9. 《浪潮之巅》读书笔记(上)
  10. pip3 install mysqlclient 报错 “/bin/sh: 1: mysql_config: not found”的解决方法