演算子の優先順位

C言語の式は、原則的に左から右に計算をしていきます。しかし、「乗算・除算は加算・減算よりも先に計算する」、「()内の計算を優先して計算する」など、演算には優先順位があります。

式の中に複数の演算子がある場合には、C言語は以下の順番で優先順位に基づいて計算を行います。また、同じ順位の演算子が並んでいるとき、式の左右どちらから適用しているかも決まっています。

C言語のプログラミングにおいては、様々な計算を行いますが、プログラムの中で複雑な演算処理を行う際には、この演算子の優先順位に十分気を付けながら指揮を作成する必要があります。



優先順位演算子内容評価順位
1()括弧左から右
[]配列要素
.構造体メンバ
->構造体ポインタ
++ --インクリメント・デクリメント(後置)
2++ --インクリメント・デクリメント(前置)右から左
+ -プラス符号、マイナス符号(数値の正負を表す)
! ~論理否定、ビットの反転
(type)キャスト(強制型変換)
*ポインタ(間接指定)
&アドレス
sizeof演算数のバイト数
3* / %乗算、除算、剰余左から右
4+ -加算、減算左から右
5<< >>左シフト、右シフト左から右
6< <=より小、以下左から右
> >=より大、以上
7== !=等しい、等しくない左から右
8&ビット論理積(AND)左から右
9^ビット排他的論理和(XOR)左から右
10|ビット論理和(OR)左から右
11&&論理積左から右
12||論理和左から右
13?:条件式右から左
14=代入右から左
+= -=
*= /=
%= &=
^= |=
<<= >>=
15,コンマ左から右