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 ,

另請參閱

運算子多載