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 | |
sizeofsizeof() |
sizeof 运算符用于表达式或类型 |
sizeof 123sizeof (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 | ||