首页 经验

C++运算符优先级一览表

时间: 2024-10-19 12:45:51

(部分内容来自网络,其真实性存疑,为了避免对您造成误导,请谨慎甄别。)


C++ 运算符的优先级决定了在没有括号的情况下,复合表达式中运算的先后顺序。下面是 C++ 中运算符的优先级一览表,按优先级从高到低排列:


C++ 运算符优先级表


优先级运算符描述
1()函数调用
1[]数组下标
1.成员访问
1->指针成员访问
1++ (前缀)前缀自增
1-- (前缀)前缀自减
2++ (后缀)后缀自增
2-- (后缀)后缀自减
2+一元加(正号)
2-一元减(负号)
2!逻辑非
2~按位非
3乘方(C++20新特性)
4*乘法
4/除法
4%取模
5+加法
5-减法
6<<左移
6>>右移
7<小于
7<=小于或等于
7>大于
7>=大于或等于
8==等于
8!=不等于
9&按位与
10^按位异或
11</td>
12&&逻辑与
13</td>
14? :条件运算符(三元运算符)
15=赋值
15+=加赋值
15-=减赋值
15*=乘赋值
15/=除赋值
15%=取模赋值
15<<=左移赋值
15>>=右移赋值
15&=按位与赋值
15^=按位异或赋值
15=
16,逗号运算符(逗号表达式)


备注


1. 相同优先级的运算符:如果运算符优先级相同,则由运算符的结合性决定运算的顺序。

   - 左结合性:从左到右计算,如大多数算术运算符(+, -, *, /)。

   - 右结合性:从右到左计算,如赋值运算符(=, +=, -=)。

  

2. 使用括号:为了提高代码的可读性及明确运算顺序,建议在复杂的表达式中使用括号。括号的优先级最高。


3. C++ 语言标准**:以上优先级和结合性是基于 C++ 的语言标准。对于某些运算符(如 ?:` 条件运算符),其适用性会更依赖于上下文。


示例代码


以下是一个使用不同运算符的示例,展示了优先级的影响:


cpp

#include <iostream>


int main() {

    int a = 5, b = 3, c = 2;


    int result = a + b * c; // 结果为 11,因为 * 的优先级高于 +

    std::cout << "a + b * c = " << result << std::endl;


    result = (a + b) * c; // 结果为 16,因为括号改变了计算顺序

    std::cout << "(a + b) * c = " << result << std::endl;


    result = a - b < c; // 结果为 false 因为先计算 a - b 然后结果再与 c 比较

    std::cout << "a - b < c = " << result << std::endl;


    return 0;

}


总结


运算符优先级是理解 C++ 中表达式计算的重要部分。熟悉运算符的优先级可以帮助开发者编写正确且高效的代码。使用括号可以明确表达意图,从而避免潜在的错误和混淆。


上一个 Unix时间戳详解 文章列表 下一个 C#与.net 到底是啥关系?

最新

工具

© 2019-至今 适观科技

沪ICP备17002269号