【C++复习】运算符优先级(简)
只讨论个大概,不管细节
不同优先级的运算符混在一起,就根据优先级算
相同优先级的运算符混在一起,就看它们的结合性(这里不谈)
一定要记住:括号>基本计算>关系>逻辑>底层选手
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
*/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 单线程的Redis速度为什么快?
· 展开说说关于C#中ORM框架的用法!
· Pantheons:用 TypeScript 打造主流大模型对话的一站式集成库
· SQL Server 2025 AI相关能力初探
· 为什么 退出登录 或 修改密码 无法使 token 失效