C++ 內建運算子、優先順序和關聯性
C++ 語言包含所有 C 運算子,並且新增了數個新的運算子。 運算子指定要對一個或多個運算元執行的評估:
優先順序和關聯性
運算子 優先順序 會指定運算式中包含多個運算子的作業順序。 運算子 關聯性 指定,在包含相同優先順序之多個運算子的運算式中,運算元會與左邊的運算元或右邊的運算子分組。
替代拼字
C++ 會指定某些運算子的替代拼字。 在 C 中,替代拼字會以 iso646.h > 標頭中的 < 宏的形式提供。 在 C++ 中,這些替代方法是關鍵字,而使用 < iso646.h > 或 C++ 對等 < ciso646 > 已被取代。 在 Microsoft C++ 中 /permissive-
,需要 或 /Za
編譯器選項才能啟用替代拼字。
C++ 運算子優先順序和關聯性資料表
下表顯示 C++ 運算子的優先順序和順序關聯性 (從最高到最低優先順序)。 除非以括號明確強制其他關聯性,否則運算子的優先順序數字若相同,其優先順序即相等。
運算子描述 | 運算子 | 替代函式 |
---|---|---|
群組 1 優先順序,沒有關聯性 | ||
範圍解析 | :: |
|
群組 2 優先順序,由左至右關聯性 | ||
成員選取專案 (物件或指標) | . 或 -> |
|
陣列注標 | [] |
|
函式呼叫 | () |
|
後置遞增 | ++ |
|
後置遞減 | -- |
|
類型名稱 | typeid |
|
常數類型轉換 | const_cast |
|
動態類型轉換 | dynamic_cast |
|
重新解譯的類型轉換 | reinterpret_cast |
|
靜態類型轉換 | static_cast |
|
群組 3 優先順序,由右至左關聯性 | ||
物件或類型的大小 | sizeof |
|
前置詞遞增 | ++ |
|
前置詞遞減 | -- |
|
一個的補數 | ~ |
compl |
邏輯不是 | ! |
not |
一元否定運算 | - |
|
一元加號 | + |
|
位址 | & |
|
間接 | * |
|
建立物件 | new |
|
Destroy 物件 | delete |
|
投 | () |
|
群組 4 優先順序,由左至右關聯性 | ||
指標到成員 (物件或指標) | .* 或 ->* |
|
群組 5 優先順序,由左至右關聯性 | ||
乘法 | * |
|
除法 | / |
|
模 | % |
|
群組 6 優先順序,由左至右關聯性 | ||
加法 | + |
|
減法 | - |
|
群組 7 優先順序,由左至右關聯性 | ||
左移 | << |
|
右移 | >> |
|
群組 8 優先順序,由左至右關聯性 | ||
小於 | < |
|
大於 | > |
|
小於或等於 | <= |
|
大於或等於 | >= |
|
群組 9 優先順序,由左至右關聯性 | ||
相等 | == |
|
不等 | != |
not_eq |
群組 10 優先順序由左至右關聯性 | ||
位元 AND | & |
bitand |
群組 11 優先順序,由左至右關聯性 | ||
位獨佔 OR | ^ |
xor |
群組 12 優先順序,由左至右關聯性 | ||
位內含 OR | | |
bitor |
群組 13 優先順序,由左至右關聯性 | ||
邏輯 AND | && |
and |
群組 14 優先順序,由左至右關聯性 | ||
邏輯 OR | || |
or |
群組 15 優先順序,由右至左關聯性 | ||
條件 | ? : |
|
指派 | = |
|
乘法指派 | *= |
|
除法指派 | /= |
|
模數指派 | %= |
|
加法指派 | += |
|
減法指派 | -= |
|
左移指派 | <<= |
|
右移指派 | >>= |
|
位 AND 指派 | &= |
and_eq |
位內含 OR 指派 | |= |
or_eq |
位獨佔 OR 指派 | ^= |
xor_eq |
throw 運算式 | throw |
|
群組 16 優先順序,由左至右關聯性 | ||
Comma | , |
另請參閱
意見反映
https://aka.ms/ContentUserFeedback。
即將推出:我們會在 2024 年淘汰 GitHub 問題,並以全新的意見反應系統取代並作為內容意見反應的渠道。 如需更多資訊,請參閱:提交及檢視以下的意見反映: