
优先级 | 运算符 | 描述 | 结合性 |
---|---|---|---|
1 | :: | 作用域解析 | 从左到右 |
2 | a++ a– | 后缀自增与自减 | |
type() type{} | 函数风格转型 | ||
a() | 函数调用 | ||
a[] | 下标 | ||
. -> | 成员访问 | ||
3 | ++a –a | 前缀自增与自减 | 从右到左 |
+a -a | 一元加与减 | ||
! ~ | 逻辑非和逐位非 | ||
(type) | C 风格转型 | ||
*a | 间接(解引用) | ||
&a | 取址 | ||
sizeof | 取大小 | ||
new new[] | 动态内存分配 | ||
delete delete[] | 动态内存分配 | ||
4 | .* ->* | 指向成员指针 | 从左到右 |
5 | a*b a/b a%b | 乘法、除法与余数 | |
6 | a+b a-b | 加法与减法 | |
7 | « » | 逐位左移与右移 | |
8 | <=> | 三路比较运算符(C++20 起) | |
9 | < <= | 分别为 < 与 ≤ 的关系运算符 | |
> >= | 分别为 > 与 ≥ 的关系运算符 | ||
10 | == != | 分别为 = 与 ≠ 的关系运算符 | |
11 | a&b | 逐位与 | |
12 | ^ | 逐位异或(排除或) | |
13 | | | 逐位或(包含或) | |
14 | && | 逻辑与 | |
15 | || | 逻辑或 | |
16 | a?b:c | 三元条件 | 从右到左 |
throw | throw 运算符 | ||
= | 直接赋值( C++ 类默认提供) | ||
+= -= | 以和及差复合赋值 | ||
*= /= %= | 以积、商及余数复合赋值 | ||
«= »= | 以逐位左移及右移复合赋值 | ||
&= ^= |= | 以逐位与、异或及或复合赋值 | ||
17 | , | 逗号 | 从左到右 |
.*
和 ->*
也是运算符,指向成员指针。在使用成员函数指针时使用。
单目运算符 > 双目运算符 > 三目运算符
算术运算符 > 关系运算符 > 位运算符 > 逻辑运算符
算术运算符移位优先级最低
位运算符 & > ^ > |
复合赋值(-= +=等)与三目运算符同级别
逗号运算符优先级最低