先頭へ戻る

演算子の優先順位 | Programming Place Plus C言語編

Programming Place Plus トップページ -- C言語編

先頭へ戻る

C言語に存在する演算子の優先度が、どのように定義されているか一覧できるようにしました。

演算子の優先順位

優先度の列の数値が小さいものほど先に処理されます。
評価の向きというのは、その演算子の左側と右側の式のうち、どちらから処理されるかという意味です。

優先度

演算子

機能

評価の向き

解説章

1

()

関数呼び出し

左から右

第9章

[]

配列の要素

第25章

->

ポインタからの構造体メンバアクセス

第31章

.

構造体メンバアクセス

第26章

++

後置インクリメント

第15章

--

後置デクリメント

第15章

(type) {...}

(C99) 複合リテラル

2

!

論理否定

右から左

第13章

~

ビット否定

第49章

++

前置インクリメント

第15章

--

前置デクリメント

第15章

+

符号

-

符号

*

ポインタの間接参照

第31章

&

メモリアドレス

第31章

sizeof

変数や型の大きさを取得

第6章

_Alignof

(C11) アラインメント値を取得

第37章

3

(型名)

キャスト

右から左

第21章

4

*

乗算

左から右

第4章

/

除算

第4章

%

剰余

第4章

5

+

加算

左から右

第4章

-

減算

第4章

6

<<

左シフト

左から右

第49章

>>

右シフト

第49章

7

<

左の方が小さい

左から右

第11章

<=

左が右以下

第11章

>

左の方が大きい

第11章

>=

左が右以上

第11章

8

==

等しい

左から右

第11章

!=

等しくない

第11章

9

&

ビット積

左から右

第49章

10

^

ビット排他的論理和

左から右

第49章

11

ビット和

左から右

第49章

12

&&

論理積

左から右

第13章

13

||

論理和

左から右

第13章

14

? :

条件演算子

右から左

第27章

15

=

代入

右から左

第3章

+=

加算代入

第27章

-=

減算代入

第27章

*=

乗算代入

第27章

/=

除算代入

第27章

%=

剰余代入

第27章

<<=

左シフト代入

第49章

>>=

右シフト代入

第49章

&=

ビット積代入

第49章

|=

ビット和代入

第49章

^=

ビット排他的論理和代入

第49章

16

,

カンマ

左から右

第27章

最も高い優先度のところにあるので勘違いしやすいですが、( ) は関数呼び出しのものであって、 a = (10 + 5) * 2; のように使われる ( ) とは異なります。これは括弧式というもので、演算子ではありません。
括弧式の効果は、グループ化する範囲を示すことです。

参考リンク


------------------------------------------------------------------------

更新履歴

'2018/6/1 _Alignof演算子を追加。

'2018/2/22 「サイズ」という表記について表現を統一。 型のサイズ(バイト数)を表しているところは「大きさ」、要素数を表しているところは「要素数」。

'2013/1/12 新規作成。


------------------------------------------------------------------------

C言語編のトップページへ

Programming Place Plus のトップページへ



はてなブックマーク に保存 Pocket に保存 Facebook でシェア
Twitter でツイート Twitter をフォロー LINE で送る
rss1.0 取得ボタン RSS 管理者情報 プライバシーポリシー