【C++复习】运算符优先级(简)
2024-10-21 02:57:09
只讨论个大概,不管细节
不同优先级的运算符混在一起,就根据优先级算
相同优先级的运算符混在一起,就看它们的结合性(这里不谈)
一定要记住:括号>基本计算>关系>逻辑>底层选手
1、运算符有哪些?
- 单目运算符
*
++
自增,有前置和后置--
自减,有前置和后置!
逻辑非+
正号-
负号
- 双目运算符/三目运算符
- 算术运算符
+
-
*
/
%
- 移位运算符
<<
>>
- 关系运算符
<
<=
>
>=
==
!=
- 位运算符(按位进行逻辑计算)
&
|
^
- 逻辑运算符(依据表达式进行逻辑计算)
&&
||
- 条件运算符(三目)
?:
- 赋值运算符
=
*=
/=
%=
+=
-=
<<=
>>=
&=
^=
|=
- 逗号运算符
,
- 算术运算符
2、运算符优先级原则(一般场景)
- 底层选手:逗号运算符和赋值运算符优先级最低,之后就是三目运算符和双目逻辑运算符
- 一般情况下的法则
- 单目>双目>三目
- 括号>基本计算>关系>逻辑>底层选手
- 注意按位逻辑运算符在关系运算符之后
3、常见运算场景
经典数值判断(算数>关系>双目逻辑)
a+2>3&&b-a>4
//相当于
( (a+2) > 3 ) && ( (b-a) > 4 )
经典三目运算符应用
ans=a>b?a:b
//相当于
ans = ( (a>b) ? a:b )
关系>按位运算
3&4!=2
//等价于
3&(4!=2)
//3与1进行按位与运算,结果为1
z=x<y?x++:y++
int x = 1, y = 2, z = 66;
z = x < y ? x++ : y++;
/*等价于
if(x<y) z=x++;
else z=y++;
*/
/*运行结果:
x=2,y=2,z=1
*/
最新文章
- ABP源码分析四十四:ZERO的配置
- 《java编程思想》读书笔记 暂停一段时间,改为上面的练习题
- Sigmaplot激活码获取地址
- Redis和Memcache对比及选择(转载)
- Heroku空项目 Git本地Push代码错误 以及 Heroku Web启动错误
- Hadoop中WritableComparable 和 comparator
- 适配iOS10以及Xcode8-b
- PCB优化设计(转载)
- ZOJ-2112-Dynamic Rankings(线段树套splay树)
- c++,命名空间(namespace)
- Luogu Dynamic Ranking (带修改的主席树)
- Android Studio精彩案例(六)《使用一个Demo涵盖补间动画所有知识》
- 无需密码通过scp命令+key的方式实现文件传输
- Mac 常用的快捷键
- 解决在静态页面上使用动态参数,造成spider多次和重复抓取的问题
- 查看LINQ Expression編譯後的SQL語法(转)
- Linux设置history命令显示时间
- 如何优雅地使用vim编辑器
- 阿里前端测试题--关于ES6中Promise函数的理解与应用
- Directory类的使用、Alt+Shift+F10可以查看其命名空间
热门文章
- python 实现RSA数字签名
- week_10
- HMS Core 3D流体仿真技术,打造移动端PC级流体动效
- 【转载】SQL Server FileStream 体验
- Proxyless Mesh 在 Dubbo 中的实践
- Java中Elasticsearch 实现分页方式(三种方式)
- win10 WSL2问题解决“WslRegisterDistribution failed with error: 0x800701bc”
- 如何通过Terraform Associate考试并获得证书
- Linux c 检测U盘挂载路径方法
- MySQL数据库技术实战