跳轉到內容

title=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
華夏公益教科書