📅  最后修改于: 2023-12-03 14:40:14.872000             🧑  作者: Mango
在 C++ 中,运算符的优先级决定了表达式中各个运算符的执行顺序。如果表达式中包含多个运算符,而没有使用括号明确指定运算的优先级,那么会根据优先级规则来决定运算的顺序。
以下是 C++ 中常见运算符的优先级,按照从高到低的顺序排列:
一元后缀运算符:
()
:函数调用[]
:数组访问.
:成员访问->
:成员指针访问++
:后缀递增--
:后缀递减一元前缀运算符:
++
:前缀递增--
:前缀递减+
:正号-
:负号!
:逻辑非~
:按位求反*
:指针引用&
:取地址sizeof
:求大小乘法和除法运算符:
*
:乘法/
:除法%
:取模加法和减法运算符:
+
:加法-
:减法位移运算符:
<<
:左移>>
:右移关系运算符:
<
:小于>
:大于<=
:小于等于>=
:大于等于相等和不相等运算符:
==
:等于!=
:不等于位运算符:
&
:按位与|
:按位或^
:按位异或逻辑运算符:
&&
:逻辑与||
:逻辑或条件运算符:
?:
:三元条件运算符赋值运算符:
=
:赋值+=
:加后赋值-=
:减后赋值*=
:乘后赋值/=
:除后赋值%=
:取模后赋值<<=
:左移后赋值>>=
:右移后赋值&=
:按位与后赋值|=
:按位或后赋值^=
:按位异或后赋值注意:优先级高的运算符会在优先级低的运算符之前执行,如果优先级相同,则按照从左到右的顺序执行。
以下是一个示例代码片段,展示了运算符优先级的使用:
int a = 5;
int b = 10;
int c = 15;
int result = a + b * c;
// result 的值为 155,因为乘法的优先级高于加法
bool condition = a < b && c > b;
// condition 的值为 true,因为逻辑与的优先级高于关系运算符
int x = 10;
int y = 20;
int z = 30;
x += y *= z;
// x 的值为 610,y 的值为 600,z 的值为 30
希望这个介绍能够帮助你理解 C++ 中的运算符优先级。更多详细的运算符优先级信息可以参考 C++ 的官方文档。