C++ 运算符优先级和关联性

C++ 语言包括所有 C 运算符并添加多个新的运算符。 运算符指定对一个或多个操作数执行的计算。

运算符优先级别指定包含多个运算符的表达式中的运算顺序。 运算符关联性指定,在包含多个具有相同优先级别的运算符的表达式中,操作数与其左侧还是右侧的操作数组合。 下表显示 C++ 运算符的优先级别和关联性(从最高优先级别到最低优先级别)。 优先级别编号相同的运算符具有等同的优先级别,除非由括号显式施加另一种关系。

C++ 运算符的优先级别和关联性

运算符说明

Group 1 precedence, no associativity

范围解析

Group 2 precedence, left to right associativity

成员选择(对象或指针)

数组下标

函数调用

后缀递增

后缀递减

类型名称

常量类型转换

动态类型转换

重新解释的类型转换

静态类型转换

Group 3 precedence, right to left associativity

对象或类型的大小

前缀递增

前缀递减

二进制反码

逻辑“非”

一元求反

一元加

address-of

间接寻址

创建对象

销毁对象

Cast

Group 4 precedence, left to right associativity

指向成员的指针(对象或指针)

Group 5 precedence, left to right associativity

乘法

除法

取模

Group 6 precedence, left to right associativity

添加

减法

Group 7 precedence, left to right associativity

左移

右移

Group 8 precedence, left to right associativity

小于

大于

小于或等于

大于或等于

Group 9 precedence, left to right associativity

相等

不相等

Group 10 precedence left to right associativity

按位“与”

Group 11 precedence, left to right associativity

按位“异或”

Group 12 precedence, left to right associativity

按位“与或”

Group 13 precedence, left to right associativity

逻辑“与”

Group 14 precedence, left to right associativity

逻辑“或”

Group 15 precedence, right to left associativity

条件运算

Group 16 precedence, right to left associativity

赋值

乘法赋值

除法赋值

取模赋值

加法赋值

减法赋值

左移赋值

右移赋值

按位“与”赋值

按位“与或”赋值

按位“异或”赋值

Group 17 precedence, right to left associativity

引发表达式

Group 18 precedence, left to right associativity

逗号

请参见

参考

C++ 运算符

运算符重载