C++11 运算符的优先级分组和结合性
本文汇总了 C++11 中的运算符的含义、优先级分组及其结合性。
如果两个运算符用于同一个操作数,首先应用优先极高的。如果两个运算符优先级相同,按结合性规则决定应用那个运算符。同一组中的运算符优先级和结合性相同,无论先左后右(L-R),还是先右后左(R-L)。
| 运算符 | 含义 | 优先级分组 | 结合性 |
|---|---|---|---|
| :: | 作用域解析 | 1 | L-R |
| (表达式) | 分组运算 | 2 | L-R |
| () | 函数调用 | ||
| () | 值构造,如 int('c') | ||
| [] | 数组下标 | ||
| -> | 间接成员访问 | ||
| . | 直接成员访问 | ||
| const_cast | 类型转换 | ||
| dynamic_cast | 类型转换 | ||
| reinterpret_cast | 类型转换 | ||
| static_cast | 类型转换 | ||
| typeid | 类型标识 | ||
| ++ | 后缀自加,如 i++ | ||
| -- | 后缀自减,如 i-- | ||
| ! | 逻辑非 | 3 | R-L |
| ~ | 位非 | ||
| + | 正号 | ||
| - | 负号 | ||
| ++ | 前缀自加,如 ++i | ||
| -- | 前缀自减,如 --i | ||
| & | 地址 | ||
| * | 解引用 | ||
| () | 类型转换,如 (int)'c' | ||
| sizeof | 字节长度 | ||
| new | 动态分配内存 | ||
| new [] | 动态分配数组 | ||
| delete | 动态释放内存 | ||
| delete [] | 动态释放数组 | ||
| .* | 直接成员解引用 | 4 | L-R |
| ->* | 间接成员解引用 | ||
| * | 乘 | 5 | L-R |
| / | 除 | ||
| % | 模 | ||
| + | 加 | 6 | L-R |
| - | 减 | ||
| << | 左移 | 7 | L-R |
| >> | 右移 | ||
| < | 小于 | 8 | L-R |
| <= | 小于等于 | ||
| >= | 大于等于 | ||
| > | 大于 | ||
| == | 等于 | 9 | L-R |
| != | 不等于 | ||
| & | 按位与 | 10 | L-R |
| ^ | 按位异或 | 11 | L-R |
| | | 按位或 | 12 | L-R |
| && | 逻辑与 | 13 | L-R |
| || | 逻辑或 | 14 | L-R |
| ?: | 条件 | 15 | R-L |
| = | 简单赋值 | 16 | R-L |
| *= | 乘并赋值 | ||
| /= | 除并赋值 | ||
| %= | 模并赋值 | ||
| += | 加并赋值 | ||
| -= | 减并赋值 | ||
| &= | 按位与并赋值 | ||
| ^= | 按位异或并赋值 | ||
| |= | 按位或并赋值 | ||
| <<= | 左移并赋值 | ||
| >>= | 右移并赋值 | ||
| throw | 引发异常 | 17 | L-R |
| , | 合并两个表达式 | 18 | L-R |
受限于作者的水平,读者如发现有任何错误或有疑问之处,请追加评论或发邮件联系 green-pi@qq.com。作者将在收到意见后的第一时间里予以回复。 本文来自博客园,作者:green-cnblogs,转载请注明原文链接:https://www.cnblogs.com/green-cnblogs/p/18241788 谢谢!

浙公网安备 33010602011771号