参考:《cppp 5th》
注:同一个符号使用一元或二元来区分不同的操作符
| 组 | 操作符 | 结合性 | 含义 |
|---|---|---|---|
| 1 | :: | 作用域解析操作符 | |
| 2 | (表达式) | 分组 | |
| () | L-R(左结合) | 函数调用 | |
| () | 值构造,即type(expr) | ||
| [ ] | 数组下标 | ||
| -> | 间接成员操作符 | ||
| . | 直接成员操作符 | ||
| const_cast | 专用的类型转换 | ||
| dynamic_cast | 专用的类型转换 | ||
| reinterpret_cast | 专用的类型转换 | ||
| static_cast | 专用的类型转换 | ||
| typeid | 类标识符 | ||
| ++ | 加1操作符,后缀 | ||
| – | 减1操作符,后缀 | ||
| 3(全是一元) | ! | R-L(右结合) | 逻辑非 |
| ~ | 位非 | ||
| + | 一元加号(正号) | ||
| - | 一元减号(负号) | ||
| ++ | 加1操作符,前缀 | ||
| – | 减1操作符,前缀 | ||
| & | 取地址 | ||
| * | 解除引用(间接值) | ||
| () | 类型转换,即(type)expr | ||
| sizeof | 长度,以字节为单位 | ||
| new | 动态分配内存 | ||
| new[] | 动态分配数组 | ||
| detele | 动态释放内存 | ||
| delete | 动态释放数组 | ||
| 4 | .* | L-R | 成员解除引用 |
| ->* | 间接成员解除引用 | ||
| 5(全是二元) | * | L-R | 乘 |
| / | 除 | ||
| % | 模(余数) | ||
| 6(全是二元) | + | L-R | 加 |
| - | 减 | ||
| 7 | << | L-R | 左移 |
| >> | 右移 | ||
| 8 | < | L-R | 小于 |
| <= | 小于或等于 | ||
| >= | 大于或等于 | ||
| > | 大于 | ||
| 9 | == | L-R | 等于 |
| != | 不等于 | ||
| 10(一元) | & | L-R | 位AND |
| 11 | ^ | L-R | 位XOF(位异或) |
| 12 | | | L-R | 位OR |
| 13 | && | L-R | 逻辑AND |
| 14 | || | L-R | 逻辑OR |
| 15 | : ? | R-L | 条件 |
| 16 | = | R-L | 简单赋值 |
| *= | 乘并赋值 | ||
| /= | 除并赋值 | ||
| %= | 求模并赋值 | ||
| += | 加并赋值 | ||
| -= | 减并赋值 | ||
| &= | 位AND并赋值 | ||
| ^= | 位XOR并赋值 | ||
| = | 位OR并赋值 | ||
| <<= | 左移并赋值 | ||
| >>= | 右移并赋值 | ||
| 17 | throw | L-R | 引发异常 |
| 18 | , | L-R | 将两个表达式合并 |



