title=C++ 编程:语言默认运算符
外观
< C++ 编程
同一组中的运算符具有相同的优先级,计算顺序由结合性决定(从左到右或从右到左)。前面的组中的运算符具有比后面的组中的运算符更高的优先级。
运算符 | 描述 | 示例用法 | 结合性 |
---|---|---|---|
作用域解析运算符 | — | ||
:: | 一元作用域解析运算符 用于全局变量 |
::NUM_ELEMENTS | |
:: | 二元作用域解析运算符 用于类和 命名空间 成员 |
std::cout | |
函数调用、成员访问、后缀自增/自减运算符、RTTI 和 C++ 类型转换 | 从左到右 | ||
() | 函数调用运算符 | swap (x, y) | |
[] | 数组索引运算符 | arr [i] | |
. | 成员访问运算符 用于类/联合类型的对象 或指向它的引用 |
obj.member | |
-> | 成员访问运算符 用于指向类/联合类型的对象的指针 类型 |
ptr->member | |
++ -- | 后缀自增/自减运算符 | num++ | |
typeid() | 运行时类型识别运算符 用于对象或类型 |
typeid (std::cout) typeid (std::iostream) | |
static_cast <>()dynamic_cast <>()const_cast <>()reinterpret_cast <>()
|
C++ 风格的类型转换运算符 用于编译时类型转换 有关详细信息,请参见类型转换 |
static_cast <float> (i)dynamic_cast <std::istream> (stream)const_cast <char*> ("Hello, World!")reinterpret_cast <const long*> ("C++")
| |
类型() | 函数式类型转换运算符 ( static_cast 优先于转换为基本类型) |
float (i) | |
也用作构造函数调用 用于创建临时对象,尤其是在 类类型 |
std::string ("Hello, world!", 0, 5) | ||
一元运算符 | 从右到左 | ||
!, not | 逻辑非运算符 | !eof_reached | |
~, compl | 按位取反运算符 | ~mask | |
+ - | 一元加/减运算符 | -num | |
++ -- | 前缀自增/自减运算符 | ++num | |
&, bitand | 取地址运算符 | &data | |
* | 间接访问运算符 | *ptr | |
new new[] new() new()[] |
new 运算符 用于单个对象或数组 |
new std::string (5, '*') new int [100] new (raw_mem) int new (arg1, arg2) int [100] | |
delete delete[] |
delete 运算符 用于指向单个对象或数组的指针 |
delete ptr delete[] arr | |
sizeof sizeof () |
sizeof 运算符用于表达式或类型 |
sizeof 123 sizeof (int) | |
(类型) | C 风格的类型转换运算符 (已弃用) | (float)i | |
成员指针运算符 | 从右到左 | ||
.* | 成员指针访问运算符 用于类/联合类型的对象 或指向它的引用 |
obj.*memptr | |
->* | 成员指针访问运算符 用于指向类/联合类型的对象的指针 类型 |
ptr->*memptr | |
乘法运算符 | 从左到右 | ||
* / % | 乘法、除法和 取模运算符 |
celsius_diff * 9 / 5 | |
加法运算符 | 从左到右 | ||
+ - | 加法和减法运算符 | end - start + 1 | |
按位移位运算符 | 从左到右 | ||
<< >> |
左移和右移运算符 | bits << shift_len bits >> shift_len | |
关系不等运算符 | 从左到右 | ||
< > <= >= | 小于、大于、小于或 等于、大于或等于 |
i < num_elements | |
关系等式运算符 | 从左到右 | ||
== !=, not_eq | 等于、不等于 | choice != 'n' | |
按位与运算符 | 从左到右 | ||
&, bitand | bits & clear_mask_complement | ||
按位异或运算符 | 从左到右 | ||
^, xor | bits ^ invert_mask | ||
按位或运算符 | 从左到右 | ||
|, bitor | bits | set_mask | ||
逻辑与运算符 | 从左到右 | ||
&&, and | arr != 0 && arr->len != 0 | ||
逻辑或运算符 | 从左到右 | ||
||, or | arr == 0 || arr->len == 0 | ||
条件运算符 | 从右到左 | ||
?: | size >= 0 ? size : 0 | ||
赋值运算符 | 从右到左 | ||
= | 赋值运算符 | i = 0 | |
+= -= *= /= %= &=, and_eq |=, or_eq ^=, xor_eq<<= >>= |
简写赋值运算符 (foo op= bar代表 foo = foo op bar) |
num /= 10 | |
异常 | — | ||
throw | throw "Array index out of bounds" | ||
逗号运算符 | 从左到右 | ||
, | i = 0, j = i + 1, k = 0 |