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 | ||