from:http://zh.wikipedia.org/zh-hk/C和C%2B%2B運算子
以下是C++程式語言中的所有運算子的優先級和結合性列表。
| 優先級 | 運算子 | 敘述 | 示例 | 重載性 | 結合性 | 
|---|
| 1 | :: | 作用域解析(C++專有) | Class::age = 2; | 否 | 由左至右 | 
| 2 | ++ | 後綴遞增 | i++ |  | 
| -- | 後綴遞減 | i-- |  | 
| {} | 組合 | {i++;a*=i;} |  | 
| () | 函數調用或變量初始化 | c_tor(int x, int y) : _x(x), _y(y * 10) {} |  | 
| [] | 數組訪問 | array[4] = 2; |  | 
| . | 以對象方式訪問成員 | obj.age = 34; | 否 | 
| -> | 以指針方式訪問成員 | ptr->age = 34; |  | 
| dynamic_cast | 運行時檢查類型轉換(C++專有) | Y& y = dynamic_cast<Y&>(x); | 否 | 
| static_cast | 未經檢查的類型轉換(C++專有) | Y& y = static_cast<Y&>(x); | 否 | 
| reinterpret_cast | 重定義類型轉換(C++專有) | int const* p = reinterpret_cast<int const*>(0x1234); | 否 | 
| const_cast | 更改非常量屬性(C++專有) | int* q = const_cast<int*>(p); | 否 | 
| typeid | 獲取類型信息(C++專有) | std::type_info const& t = typeid(x); | 否 | 
| 3 | ++ | 前綴遞增 | ++i |  | 由右至左 | 
| -- | 前綴遞減 | --i |  | 
| + | 一元正號 | int i = +1; |  | 
| - | 一元負號 | int i = -1; |  | 
| !
 not | 邏輯非 
 !的備用拼寫 | if (!done) … |  | 
| ~
 compl | 按位取反 
 ~的備用拼寫 | flag1 = ~flag2; |  | 
| (type) | 轉換為給定的類型 | int i = (int)floatNum; |  | 
| * | 取指針指向的值 | int data = *intPtr; |  | 
| & | 某某的地址(參考) | int *intPtr = &data; |  | 
| sizeof | 某某的大小 | size_t s = sizeof(int); | 否 | 
| new | 動態內存分配(C++專有) | long* pVar = new long; |  | 
| new[] | 動態數組內存分配(C++專有) | long* array = new long[20]; |  | 
| delete | 動態內存釋放(C++專有) | delete pVar; |  | 
| delete[] | 動態數組內存釋放(C++專有) | delete [] array; |  | 
| 4 | .* | 成員對象選擇(C++專有) | obj.*var = 24; | 否 | 由左至右 | 
| ->* | 成員指針選擇(C++專有) | ptr->*var = 24; |  | 
| 5 | * | 乘法 | int i = 2 * 4; |  | 
| / | 除法 | float f = 10.0 / 3.0; |  | 
| % | 模數(取余) | int rem = 4 % 3; |  | 
| 6 | + | 加法 | int i = 2 + 3; |  | 
| - | 減法 | int i = 5 - 1; |  | 
| 7 | << | 位元左移 | int flags = 33 << 1; |  | 
| >> | 位元右移 | int flags = 33 >> 1; |  | 
| 8 | < | 小於關係 | if (i < 42) … |  | 
| <= | 小於等於關係 | if (i <= 42) ... |  | 
| > | 大於關係 | if (i > 42) … |  | 
| >= | 大於等於關係 | if (i >= 42) ... |  | 
| 9 | ==
 eq | 等於關係 
 ==的備用拼寫 | if (i == 42) ... |  | 
| !=
 not_eq | 不等於關係 
 !=的備用拼寫 | if (i != 42) … |  | 
| 10 | &
 bitand | 位元 AND 
 &的備用拼寫 | flag1 = flag2 & 42; |  | 
| 11 | ^
 xor | 位元 XOR(獨佔or) 
 ^的備用拼寫 | flag1 = flag2 ^ 42; |  | 
| 12 | |
 bitor | 位元 OR(包含or) 
 |的備用拼寫 | flag1 = flag2 | 42; |  | 
| 13 | &&
 and | 邏輯 AND 
 &&的備用拼寫 | if (conditionA && conditionB) … |  | 
| 14 | ||
 or | 邏輯 OR 
 ||的備用拼寫 | if (conditionA || conditionB) ... |  | 
| 15 | c?t:f | 三元條件運算 | int i = a > b ? a : b; | 否 | 由右至左 | 
| 16 | = | 直接賦值 | int a = b; |  | 
| += | 以和賦值 | a += 3; |  | 
| -= | 以差賦值 | b -= 4; |  | 
| *= | 以乘賦值 | a *= 5; |  | 
| /= | 以除賦值 | a /= 2; |  | 
| %= | 以取餘數賦值 | a %= 3; |  | 
| <<= | 以位元左移賦值 | flags <<= 2; |  | 
| >>= | 以位元右移賦值 | flags >>= 2; |  | 
| &=
 and_eq | 以位元AND賦值 
 &=的備用拼寫 | flags &= new_flags; |  | 
| ^=
 xor_eq | 以位元XOR賦值 
 ^=的備用拼寫 | flags ^= new_flags; |  | 
| |=
 or_eq | 以位元OR賦值 
 |=的備用拼寫 | flags |= new_flags; |  | 
| 17 | throw | 拋出異常 | throw EClass(「Message」); | 否 | 
| 18 | , | 逗號 | for (i = 0, j = 0; i < 10; i++, j++) … |  | 由左至右 | 
在本表中,a、b和c代表有效值(來自變數或返回值的逐字常數或數值)、物件名稱,或適當的左值。
| [編輯]算術運算子 | 
| 運算子名稱 | 語法 | 可重載 | C裡有 | 
|---|
| 一元正號 | +a | 是 | 是 | 
| 加法(總和) | a + b | 是 | 是 | 
| 前綴遞增 | ++a | 是 | 是 | 
| 後綴遞增 | a++ | 是 | 是 | 
| 以加法賦值 | a += b | 是 | 是 | 
| 一元負號(取反) | -a | 是 | 是 | 
| 減法(差) | a - b | 是 | 是 | 
| 前綴遞減 | --a | 是 | 是 | 
| 後綴遞減 | a-- | 是 | 是 | 
| 以減法賦值 | a -= b | 是 | 是 | 
| 乘法(乘積) | a * b | 是 | 是 | 
| 以乘法賦值 | a *= b | 是 | 是 | 
| 除法(分之) | a / b | 是 | 是 | 
| 以除法賦值 | a /= b | 是 | 是 | 
| 模數(餘數) | a % b | 是 | 是 | 
| 以模數賦值 | a %= b | 是 | 是 | 
| [編輯]比較運算子 | 
| 運算子名稱 | 語法 | 可重載 | C裡有 | 
|---|
| 小於 | a < b | 是 | 是 | 
| 小於或等於 | a <= b | 是 | 是 | 
| 大於 | a > b | 是 | 是 | 
| 大於或等於 | a >= b | 是 | 是 | 
| 不等於 | a != b | 是 | 是 | 
| 等於 | a == b | 是 | 是 | 
| 邏輯取反 | !a | 是 | 是 | 
| 邏輯 AND | a && b | 是 | 是 | 
| 邏輯 OR | a || b | 是 | 是 | 
| [編輯]位元運算子 | 
| 運算子名稱 | 語法 | 可重載 | C裡有 | 
|---|
| 位元左移 | a << b | 是 | 是 | 
| 以位元左移賦值 | a <<= b | 是 | 是 | 
| 位元右移 | a >> b | 是 | 是 | 
| 以位元右移賦值 | a >>= b | 是 | 是 | 
| 位元一的補數 | ~a | 是 | 是 | 
| 位元 AND | a & b | 是 | 是 | 
| 以位元 AND 賦值 | a &= b | 是 | 是 | 
| 位元 OR | a | b | 是 | 是 | 
| 以位元 OR 賦值 | a |= b | 是 | 是 | 
| 位元 XOR | a ^ b | 是 | 是 | 
| 以位元 XOR 賦值 | a ^= b | 是 | 是 | 
| [編輯]其它運算子 | 
| 運算子名稱 | 語法 | 可重載 | C裡有 | 
|---|
| 基本賦值 | a = b | 是 | 是 | 
| 函式呼叫 | a() | 是 | 是 | 
| 陣列下標 | a[b] | 是 | 是 | 
| 間接(向下參考) | *a | 是 | 是 | 
| 的位址(參考) | &a | 是 | 是 | 
| 成員指標 | a->b | 是 | 是 | 
| 成員 | a.b | 否 | 是 | 
| 間接成員指標 | a->*b | 是 | 否 | 
| 間接成員 | a.*b | 否 | 否 | 
| 轉換 | (type) a | 是 | 是 | 
| 逗號 | a , b | 是 | 是 | 
| 三元條件 | a ? b : c | 否 | 是 | 
| 作用域解析 | a::b | 否 | 否 | 
| 的大小 | sizeof a | 否 | 是 | 
| 類型識別 | typeid type | 否 | 否 | 
| 分配儲存區 | new type | 是 | 否 | 
| 解除分配儲存區 | delete a | 是 | 否 | 
[編輯]語言擴展
| 運算子名稱 | 語法 | 可重載 | C裡有 | 提供者 | 
|---|
| 標籤值 | && label | 否 | 是 | GCC | 
| 取得型態 | typeof a
 typeof(expr) | 否 | 是 | GCC | 
| 最小/最大值 | a <? b
 a >? b | 否 | 否 | GCC |