参考:《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 | 将两个表达式合并 |