[戻る]
演算子優先順位一覧(C/C++)

   (05/01/27) 右シフト演算子の備考がVisual C++固有のものだったので修正
   (05/06/19) 除算代入演算子の解説が除算ではなく減算になっていたのを修正
   (06/04/26) ビット演算系複合代入演算子の種別がビットではなく算術になっていたのを修正
   (08/10/17) メンバポインタ演算子について加筆

C言語、C++言語の演算子の優先順位表です。 (結合規則の→は左から右を、←は右から左を表します)
表記名前または意味種別優先順位結合規則解説備考
::スコープ解決なしその他17なし目標の所属を明示します。C++のみ。
()関数呼び出しなしその他16目標の関数を呼び出します。
()変換なしその他16なし式を目標の型に変換します。C++のみ。
[]配列添字参照なしその他16目標の配列の指定された番号の要素になります。
->構造体ポインタ参照なしその他16目標の構造体またはクラスのポインタを参照します。
.構造体メンバ選択なしその他16目標の構造体またはクラスを参照します。
++後置インクリメント単項算術16なし目標の変数に1加算を行います。加算は次回変数使用時に反映
--後置デクリメント単項算術16なし目標の変数に1減算を行います。減算は次回変数使用時に反映
typeid型名なしその他16なし目標の型名を返します。C++のみ。
const_castconst変更型キャストなしその他16なし目標のconst属性を変更します。C++のみ。
dynamic_cast実行時型チェックキャストなしその他16なし目標を指定型に変換可能か実行時に確認して変換。C++のみ。
static_cast通常型キャストなしその他16なし目標を指定型に変換可能かコンパイル時に確認して変換。C++のみ。
reinterpret_cast無条件型キャストなしその他16なし目標を無条件に変換。C++のみ。
++前置インクリメント単項算術15なし目標の変数に1加算を行います。
--前置デクリメント単項算術15なし目標の変数に1減算を行います。
~NOT(補数)単項ビット15なし目標のビットを全反転した値になります。
!論理NOT(反転)単項論理15なし目標の真と偽を反転した値になります。
+単項プラス単項算術15なし効果不明です。多分何もしないのではないかと思いますが・・・
-算術否定単項算術15なし目標の正負を逆転した値になります。
*ポインタ参照単項その他15なし目標のポインタの指す先の変数になります。
&アドレス取得単項その他15なし目標のアドレスを取得します。
newオブジェクト作成なしその他15なし指定した型のオブジェクトに必要なメモリを確保し、構築します。C++のみ。
deleteオブジェクト破棄なしその他15なしnewで確保したオブジェクトを破棄し、メモリを解放します。C++のみ。
delete[]オブジェクト破棄なしその他15なしnewで確保したオブジェクトの配列を破棄し、メモリを解放します。C++のみ。
sizeofサイズ取得単項その他15なし目標の型のサイズまたは変数が使用しているサイズになります。
()型キャストなしその他15目標を指定型に変換します。
.*メンバポインタなしその他14クラスメンバへのポインタを参照します。C++のみ。
->*メンバポインタなしその他14クラスメンバへのポインタを参照します。C++のみ。
*乗算二項算術13左右の乗算(掛け算)の結果になります。
/除算二項算術13左右の除算(割り算)の結果になります。
%剰余二項算術13左右の剰余(余りを求める)の結果になります。整数型のみ。
+加算二項算術12左右の加算(足し算)の結果になります。
-減算二項算術12左右の減算(引き算)の結果になります。
<<左シフト二項ビット11左辺のビットを右辺分左にずらした結果になります。左に溢れたものは消えます。
なくなった右部分は0が補完されます。
>>右シフト二項ビット11左辺のビットを右辺分右にずらした結果になります。右に溢れたものは消えます。
なくなった左部分がどうなるかはコンパイラによります。
<より小さい二項論理10左辺が右辺より小さい時、真になります。
>より大きい二項論理10左辺が右辺より大きい時、真になります。
<=以下二項論理10左辺が右辺以下の時、真になります。
>=以上二項論理10左辺が右辺以上の時、真になります。
==等価二項論理9左辺と右辺が等しい時、真になります。
!=以外二項論理9左辺が右辺以外の時、真になります。
&AND(論理積)二項ビット8左右のビット毎のAND(両方1の時1)の結果になります。
^XOR(排他的論理和)二項ビット7左右のビット毎のXOR(片方が1の時1)の結果になります。
|OR(論理和)二項ビット6左右のビット毎のOR(片方または両方が1の時1)の結果になります。
&&論理AND二項論理5左右が両方真の時、真になります。
||論理OR二項論理4左右の片方または両方が真の時、真になります。
? :条件三項その他3左の条件が真の時、中央を、偽の時、右の記述になります。唯一の三項演算子。
=代入二項算術2右辺の内容を左辺に代入します。
*=乗算代入二項算術2右辺の内容で左辺を乗算します。
/=除算代入二項算術2右辺の内容で左辺を除算します。
%=剰余代入二項算術2右辺の内容で左辺を剰余します。整数型のみ。
+=加算代入二項算術2右辺の内容で左辺を加算します。
-=減算代入二項算術2右辺の内容で左辺を減算します。
<<=左シフト代入二項ビット2右辺の内容で左辺を左シフトします。
>>=右シフト代入二項ビット2右辺の内容で左辺を右シフトします。
&=AND代入二項ビット2右辺の内容で左辺をANDします。
|=OR代入二項ビット2右辺の内容で左辺をORします。
^=XOR代入二項ビット2右辺の内容で左辺をXORします。
throw例外投入なしその他1なし例外を投入します。C++のみ。
,カンマ二項その他0なにもしません。


[戻る]

最終更新 2005/06/19