C++操作符的优先级

一文搞懂C++常见运算符优先级 文章介绍了初学C++的同学在算术表达式中容易混淆的部分,通过两个例子演示了代码的运算顺序和结果,并总结了C++中常见运算符的优先级顺序。总之,这篇文章可以帮助初学者更好地理解C++中的运算符优先级 阅读详情

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
…… 

Rthrow抛出异常Throw expr
L,逗号Expr, expr
记忆方法:

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

C++ 操作符优先级详解 第二个表达式中,由于 && 操作符的优先级比 < 操作符和 < 操作符的优先级都要高,所以先计算 a < b 和 b < c,最终将它们的结果作为 && 操作符的操作数进行计算。因为 a < b 的结果是 false,所以整个表达式的值为 false,res2 的值也为 0。: 操作符的优先级比 > 操作符的优先级低,所以 a > b 先被计算。第一个表达式中,由于前置自增操作符的优先级比后置自减操作符高,所以 ++a 先被执行,并且 b-- 被延迟到表达式计算完毕之后再执行。最终 res1 的值为 2。 阅读详情

相关推荐

C++ 操作符优先级

在C++中,操作符优先级决定了表达式中各个操作符的执行顺序。在上面的示例代码中,我们使用了不同的操作符,并利用它们的优先级进行了计算。在第一个示例中,加法操作符的优先级低于乘法操作符,所以乘法先进行,然后再进行加法。通过以上示例,我们可以清楚地看到不同操作符的优先级在表达式计算中的影响。在第二个示例中,逻辑AND操作符的优先级高于逻辑OR操作符,所以在计算逻辑表达式时先进行AND操作,再进行OR操作。在第三个示例中,条件操作符(?在C++中,操作符可以分为多个级别,每个级别都有不同的优先级。

Meta_C的博客 521

c++运算符优先级归纳

c++运算符优先级

zhaominyong的专栏 6万+

电源完整性必看!用SIwave提取PDN阻抗曲线的3个关键设置与常见报错解决

本文深入探讨了在SIwave中进行电源完整性(PI)仿真时,提取PDN阻抗曲线的三个核心设置要点。重点解析了端口阻抗设为0.1欧姆的物理意义与SYZ参数仿真中的阻抗匹配原则,并提供了针对常见收敛性问题和模型误差的实战排查思路,旨在帮助工程师获得更精确可靠的仿真结果,为去耦电容优化提供依据。

b9c0d的博客 350

C++特殊符号:【优先级】

1级优先级 左结合   () 圆括号    [ ] 下标运算符    -&gt; 指向结构体成员运算符    . 结构体成员运算符    2级优先级 右结合    ! 逻辑非运算符    ~ 按位取反运算符    ++ 前缀增量运算符    -- 前缀增量运算符    + 正号运算符   - 负号运算符    (类型) 类型转换运算符    * 指针运算符    &am...

发现问题,解决问题。 2697

避开内存陷阱:手把手教你用RKNN零拷贝接口正确管理输入输出Tensor

本文深入解析RKNN零拷贝接口在边缘计算中的高效内存管理策略,通过YOLOX实例演示如何避免内存对齐错误和数据错位。详细介绍了`rknn_tensor_mem`系列API的正确使用方法,包括内存创建、绑定、释放全流程,以及性能优化技巧如内存池技术和多核NPU负载均衡,帮助开发者提升推理效率并避开常见陷阱。

weixin_33686714的博客 157

yolov11使用记录(训练自己的数据集)

本文介绍了如何安装和使用Ultralytics YOLOv11进行目标检测。首先,通过Anaconda创建并激活虚拟环境,安装必要的依赖库如PyTorch和Ultralytics。接着,从GitHub下载YOLOv11源码,并在PyCharm中配置环境。下载预训练的YOLOv11模型后,通过编写简单的Python脚本进行图片检测,验证环境配置的正确性。最后,文章提到可以基于此环境训练自定义模型。整个过程涵盖了从环境搭建到模型应用的完整流程,适合初学者快速上手YOLOv11。

IT菜鸟 7543

C语言 运算符

A = 0011 1100 B = 0000 1101 ----------------- A = 0011 1100 B = 0000 1101 A&B = 0000 1100 相同不变 不同为0 A = 0011 1100 B = 0000 1101 A|B = 0011 1101 相同不同都为1 0为0 A = 0011 1100 B = 0000 1101 A^B = 0011 0001 相同为0 不同为1 A = 0011 110...

qq_42095701的博客 323

Markdown编辑器介绍

这篇文章介绍了Markdown编辑器的功能和使用方法。主要内容包括:Markdown的基本语法如标题、列表、链接插入等;新增功能如图片拖拽、数学公式支持、甘特图和UML图表绘制;常用快捷键说明;以及文本导出导入操作。文章详细说明了如何通过Markdown语法实现文本格式化、代码高亮、表格创建等功能,并提供了多种图表绘制的语法示例,帮助用户更好地利用Markdown编辑器进行写作和内容创作。

soso1968的博客 1177

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

两个相邻操作符的执行顺序由它们的优先级决定。例如: a + b*c,在这个表达式中,乘法和加法操作符是两个相邻的操作符,由于乘法的优先级比加法高,所以乘法运算先于加法运算执行。编译器在这里别无选择,它必须先执行乘法运算。 如果它们的优先级相同,它们的执行顺序由它们的结合性决定。例如:a + b + c,由于 + 操作符的结合性是由左到右(L-R),所以先计算a+b,然后计算(a+b)+c。 除...

Reborn Lee 3464

别再被海康VisionMaster标定搞懵了!固定相机视觉引导,从标定到示教保姆级避坑指南

本文详细解析了海康VisionMaster在固定相机视觉引导中的标定与示教全流程,特别针对单相机标定提供了精简高效的4图标定法。从标定板准备到示教物理点设置,再到坐标转换与误差补偿,提供了一套完整的保姆级避坑指南,帮助工程师快速掌握固定相机视觉引导系统的核心技术。

weixin_30336061的博客 491

建立时间与保持时间

建立时间与保持时间的计算 文章目录1、建立时间与保持时间概述及模型2、寄存器之间数据传输时建立时间与保持时间3、寄存器之间数据传输时建立时间余量与保持时间余量计算4、 FPGA允许的最大时钟频率或最小时钟周期5、计算FPGA时钟所允许的最大频率或最小时钟周期6、违反建立和保持时间会发生什么? 1、建立时间与保持时间概述及模型 建立时间(Tsu): 在时钟采样之前,输入必须稳定一段时间,该时间量称为建立时间。 理想最优建立时间: 保持时间(Th): 在时钟沿之后输入到触发器稳定所需的最短时间。 理想最优

Crazzy_M的博客 3万+

C++操作符优先级

C++操作符的优先级 操作符及其结合性 功能 用法 L L L :: :: :: 全局作用域  类作用域  名字空间作用域 ::name class::name namespace::name L L L L L . -> []

1009

eDP V1.4协议介绍

eDP的全称是Embedded DisplayPort嵌入式显示端口,主要应用与短距离系统内应用,例如手机、一体式台式机等。eDP V1.4b是基于DP V1.3标准制作完成,但因应用场景的不同,还是有很多区别。电压摆幅不同,eDP相对较低;eDP功耗相对较低;DP有线材和连接器的要求,eDP没有明确要求;AUX通道电路设计不同(相对DP取消了AC耦合电容和100KΩ/1MΩ的上下拉电阻):典型应用场景;

qflook的博客 4296

C++操作符优先级与结合性全解析

C++操作符优先级与结合性决定了表达式的求值顺序,是程序正确性的关键。本文系统梳理了C++操作符的17个优先级等级,从最高优先级的括号与成员访问到最低优先级的逗号操作符,通过思维导图和实例详细解析了常见陷阱。重点包括:单目操作符的右结合特性、前缀/后缀自增区别、关系与逻辑运算的优先级关系、三目运算符的右结合性,以及赋值运算符的低优先级特性。特别强调了混淆=与==的常见错误,建议使用括号明确运算顺序以避免隐蔽bug。理解这些规则对编写正确高效的C++代码至关重要。

bkspiderx的博客 1122

零基础教你学RDMA驱动开发--第8篇:队列对(QP)、完成队列(CQ)与工作请求(WR)机制剖析

本文深入剖析了RDMA(远程直接内存访问)中的核心机制:队列对(QP)、完成队列(CQ)和工作请求(WR)。QP作为通信端点包含发送队列(SQ)和接收队列(RQ);WR是用户提交的操作指令,转换为工作队列元素(WQE)后由网卡异步执行;CQ则提供完成通知机制。文章详细介绍了三者的协作原理,包括QP状态机、WR提交方式、CQ轮询机制,以及关键的信号控制技术(Signaled Mode)来优化性能。同时对比了SEND/RECV和RDMA WRITE两种模式的差异,提供了调试技巧和最佳实践。这些机制共同构成了RD

amy_mhd的博客 156

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

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

C++操作符的优先级 及其记忆方法   优先级 操作符 描述 例子 结合性 1 () [] -> . :: ++ -- 调节优先级的括号操作符 数组下标访问操作符 通过指向对象的指针访问成员的操作符 通过对象本身访问成员的操作符 作用域操作符 后置自增操作符 后置自减操作符 (a +

mengyuchenxi的博客 321

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

c++ 操作符大全-算术操作符、关系操作符、逻辑操作符、位操作符、自增自减操作符、赋值操作符、条件操作符、逗号操作符、操作符优先级

这里写目录标题操作符1、算术操作符2、关系操作符3、逻辑操作符4、位操作符5、自增自减操作符6、赋值操作符7、条件操作符8、逗号操作符9、操作符优先级 操作符 计算机程序可以看作一串运算式,可以对各种运算类型进行运算。这种运算不仅仅是代数上的加减乘除,也可以是在计算机中存在的数据类型的改变,还可以是一种抽象的操作。比如说我们定义组装两个机械零件,那么我们也可以定义一种已知的操作“+”,使其能够表示组装零件的操作,总之,对于基本的整型、浮点数等的种种运算操作,我们都可以用操作符(Operator)来表示。操作

m0_62870588的博客 6390

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

上一篇: linux下面_在程序中打印调用堆栈
下一篇: linux下安装boost
cppbegginer
博客等级 码龄18年 26粉丝 75原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值