C + + 内置运算符、优先级和结合性

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

优先级和结合性

运算符 优先级 指定包含多个运算符的表达式中的运算顺序。 运算符 关联 性指定是否在包含多个具有相同优先级的运算符的表达式中,将操作数分组在其左侧或右侧的一个。

备用拼写

C + + 为某些运算符指定替代拼写。 在 C 中,在标头中以宏形式提供备用拼写 <iso646.h> 。 在 c + + 中,这些替代项为关键字,使用 <iso646.h> 或 c + + 等效项 <ciso646> 已弃用。 在 Microsoft c + + 中, /permissive- /Za 需要或编译器选项来启用备用拼写。

C + + 运算符优先级和结合性表

下表显示 C++ 运算符的优先级和关联性(从最高优先级到最低优先级)。 优先级别编号相同的运算符具有等同的优先级别,除非由括号显式施加另一种关系。

运算符说明 运算符 替代方法
组1优先级,无关联性
作用域解析 ::
组2优先顺序,从左到右的关联性
成员选择(对象或指针) .->
数组下标 []
函数调用 ()
后缀递增 ++
后缀递减 --
类型名称 typeid
常量类型转换 const_cast
动态类型转换 dynamic_cast
重新解释的类型转换 reinterpret_cast
静态类型转换 static_cast
组3优先级,从右到左关联性
对象或类型的大小 sizeof
前缀递增 ++
前缀递减 --
1的补码 ~ compl
逻辑非 ! not
一元求反 -
一元加 +
地址- &
间接寻址 *
创建对象 new
销毁对象 delete
()
组4优先级,从左到右的关联性
指向成员的指针(对象或指针) .*->*
组5优先级,从左到右的关联性
乘法 *
部门 /
Modulus %
组6优先顺序,从左到右的关联性
加法 +
减法 -
组7优先级,从左到右的关联性
左移 <<
右移 >>
组8优先级,从左到右的关联性
小于 <
大于 >
小于或等于 <=
大于或等于 >=
组9优先级,从左到右的关联性
相等 ==
不相等 != not_eq
组10优先级从左到右的关联性
位与 & bitand
组11优先级,从左到右的关联性
位异或 ^ xor
组12优先级,从左到右的关联性
位或 | bitor
组13优先级,从左到右的关联性
逻辑与 && and
组14优先级,从左到右的关联性
逻辑或 || or
分组15优先级,从右到左关联性
增值税 ? :
分配 =
乘法赋值 *=
除法赋值 /=
取模赋值 %=
加法赋值 +=
减法赋值 -=
左移赋值 <<=
右移赋值 >>=
按位“与”赋值 &= and_eq
按位“与或”赋值 |= or_eq
按位“异或”赋值 ^= xor_eq
引发表达式 throw
组16优先顺序,从左到右的关联性
逗号 ,

请参阅

运算符重载