📜  cpp 中的运算符优先级 - C++ (1)

📅  最后修改于: 2023-12-03 14:40:14.872000             🧑  作者: Mango

C++ 中的运算符优先级

在 C++ 中,运算符的优先级决定了表达式中各个运算符的执行顺序。如果表达式中包含多个运算符,而没有使用括号明确指定运算的优先级,那么会根据优先级规则来决定运算的顺序。

以下是 C++ 中常见运算符的优先级,按照从高到低的顺序排列:

  1. 一元后缀运算符:

    • ():函数调用
    • []:数组访问
    • .:成员访问
    • ->:成员指针访问
    • ++:后缀递增
    • --:后缀递减
  2. 一元前缀运算符:

    • ++:前缀递增
    • --:前缀递减
    • +:正号
    • -:负号
    • !:逻辑非
    • ~:按位求反
    • *:指针引用
    • &:取地址
    • sizeof:求大小
  3. 乘法和除法运算符:

    • *:乘法
    • /:除法
    • %:取模
  4. 加法和减法运算符:

    • +:加法
    • -:减法
  5. 位移运算符:

    • <<:左移
    • >>:右移
  6. 关系运算符:

    • <:小于
    • >:大于
    • <=:小于等于
    • >=:大于等于
  7. 相等和不相等运算符:

    • ==:等于
    • !=:不等于
  8. 位运算符:

    • &:按位与
    • |:按位或
    • ^:按位异或
  9. 逻辑运算符:

    • &&:逻辑与
    • ||:逻辑或
  10. 条件运算符:

    • ?::三元条件运算符
  11. 赋值运算符:

    • =:赋值
    • +=:加后赋值
    • -=:减后赋值
    • *=:乘后赋值
    • /=:除后赋值
    • %=:取模后赋值
    • <<=:左移后赋值
    • >>=:右移后赋值
    • &=:按位与后赋值
    • |=:按位或后赋值
    • ^=:按位异或后赋值

注意:优先级高的运算符会在优先级低的运算符之前执行,如果优先级相同,则按照从左到右的顺序执行。

以下是一个示例代码片段,展示了运算符优先级的使用:

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++ 的官方文档。