【转载】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 |
问题:如何记住运算符的15种优先级和结合性?
解答:C语言中运算符种类比较繁多,优先级有15种,结合性有两种。
如何记忆两种结合性和15种优先级?下面讲述一种记忆方法。
结合性有两种,一种是自左至右,另一种是自右至左,大部分运算符的结合性是自左至右,只有单目运算符、三目运算符的赋值运算符的结合性自右至左。
优先级有15种。记忆方法如下:
记住一个最高的:构造类型的元素或成员以及小括号。
记住一个最低的:逗号运算符。
剩余的是一、二、三、赋值。
意思是单目、双目、三目和赋值运算符。
在诸多运算符中,又分为:
算术、关系、逻辑。
两种位操作运算符中,移位运算符在算术运算符后边,逻辑位运算符在逻辑运算符的前面。再细分如下:
算术运算符分 *,/,%高于+,-。
关系运算符中,〉,〉=,<,<=高于==,!=。
逻辑运算符中,除了逻辑求反(!)是单目外,逻辑与(&&)高于逻辑或(||)。
逻辑位运算符中,除了逻辑按位求反(~)外,按位与(&)高于按位半加(^),高于按位或(|)。
这样就将15种优先级都记住了,再将记忆方法总结如下:
去掉一个最高的,去掉一个最低的,剩下的是一、二、三、赋值。双目运算符中,顺序为算术、关系和逻辑,移位和逻辑位插入其中。
转载于:https://www.cnblogs.com/xuechao/archive/2011/10/10/2205301.html
【转载】C++操作符的优先级相关推荐
- 详解:操作符的优先级
前言: 复杂表达式的求值有三个影响的因素. 1. 操作符的优先级 2. 操作符的结合性 3. 是否控制求值顺序 两个相邻的操作符先执行哪个?取决于他们的优先级.如果两者的优先级相同,取决于他们的结合性 ...
- C/C++操作符的优先级和结合性问题浅析
两个相邻操作符的执行顺序由它们的优先级决定.例如: a + b*c,在这个表达式中,乘法和加法操作符是两个相邻的操作符,由于乘法的优先级比加法高,所以乘法运算先于加法运算执行.编译器在这里别无选择,它 ...
- php中括号的优先级是不是最高的,理解php中操作符的优先级和结合性
一般地说,操作符具有一组优先级,也就是执行他们的顺序. 操作符还具有结合性,也就是同一优先级的操作符的执行顺序.这种顺序通常有从左到右(简称左).从右到左(简称右)或者不相关. 下表中给出的是php中 ...
- C++操作符的优先级 及其记忆方法
优先级 操作符 描述 例子 结合性 1 () [] -> . :: ++ -- 调节优先级的括号操作符 数组下标访问操作符 通过指向对象的指针访问成员的操作符 通过对象本身访问成员的操作符 ...
- [转载]C#操作符??和?:
先看如下代码: string strParam = Request.Params["param"]; if ( strParam== null ) { strParam= ...
- python中各操作符的优先级_在Python中实现操作符优先级的一般方法是什么
我不确定您对多少细节感兴趣,但听起来您似乎在寻求实现一个解析器.通常有两个步骤: lexer读取文本并将其转换为标记.例如,它可能读取"2+3*2"并将其转换为INTEGERPLU ...
- JAVA中操作符的优先级
一元数学比较有逻辑 三元赋值就可以! 一元操作符 数学操作符 比较操作符 逻辑操作符 三元操作符 赋值操作符
- [转载]JAVA操作符
几乎所有运算符都只能操作"主类型"(Primitives).例外是"="."= ="和"! =",它们能操作所有对象.除 ...
- 【转载】C++操作符
C++操作符介绍 优先级 运算符 含 义 示 例 结合方向 要求运算 对象的个数 可重载性 1 :: 全局解析 ::x 自右至左 一元操作符 不可重载 :: 类域解析 X::x 自左至右 二元 ...
- c语言中 的优先级几级,C语言中的操作符优先级的详细介绍
C语言中的操作符优先级的详细介绍 C语言中操作符的优先级大全, 当然c++, Objective-C,大部分语言都试用. 下面是来自The C Programming Language 2th的总结. ...
最新文章
- 使用Prometheus+Grafana监控JVM
- 山社电机: SAMSR -外部接口测试
- 安装acdsee 3.1后出错
- java 判断是否整形_java判断是否基本类型
- cordova报错:Error: Failed to find ‘ANDROID_HOME‘ environment variable. Try setting setting it manually
- C语言 const 修饰函数返回值 - C语言零基础入门教程
- python3.x和python2.x唯一区别_Python3.x和Python2.x的区别介绍
- 外媒:台积电准备明年下半年采用3nm工艺为苹果生产芯片
- sql for xml path用法
- php的对象和数组应该学js,JavaScript数组与对象的常用方法及 json 的序列化
- Linux C/C++开发、嵌入式软件开发面试记录 ( 四)
- 阶段3 2.Spring_09.JdbcTemplate的基本使用_4 JdbcTemplate的CRUD操作
- serializable接口_面试官:RandomAccess这个空接口有何用?
- 《 Python笔记》— 将pyinstalller打包封装的exe文件反编译为pyc文件和python文件
- canvas 小球碰撞
- linux查看iozone安装目录,IOZone的基本使用
- 巨详细一文教你如何撰写商业计划书
- java计算费用类题目
- 潇洒老师分享的小知识:注塑模具“压模”的原因和预防措施
- 光荣特库摩游戏《莱莎的炼金工房》宣布动画化,2023 年 7 月开播
热门文章
- 线性代数第八章 λ 矩阵 定理8 多项式最大公约数的性质
- 一道很有趣的多元函数求极值问题
- 微型计算机用于梯群控制时 其优点是,下列根尖周病的治疗要求中,说法不对的是A.要求无菌操作技术B.根管内应为无菌环境C.炎症渗出物应...
- 分析一个在高并发下的财务支付锁的问题
- Linux 查看端口状态 netstat
- CSS之cursor用法
- P5018 对称二叉树
- 第 7 章 Neutron - 066 - Neutron 网络基本概念
- 《浪潮之巅》读书笔记(上)
- pip3 install mysqlclient 报错 “/bin/sh: 1: mysql_config: not found”的解决方法