C言語、演算子の優先順位まとめ

C言語の演算子における優先順位を表にまとめました。

優先順位が上にあるもの(数字が小さい方)が優先されます。優先順位がおなじ場合は、代入記号 ‘=’ に近い方(数式の右辺の左方)が優先されます。

優先順位 演算記号 数式例 名称 結合方向 備考
( ) sub(x) 関数呼び出し演算子 左側に結合  
[ ] dim[x] 添付演算子 左側に結合  
. x.y ドット演算子 左側に結合 構造体変数関係
-> x->y アロー演算子 左側に結合 構造体変数のポインタ
++ x++ 後置インクリメント演算子 左側に結合  
x– 後置ディクリメント演算子 左側に結合  
++ #NAME? 前置インクリメント演算子 右側に結合  
#NAME? 前置ディクリメント演算子 右側に結合  
sizeof sizeof(int) sizeof演算子 右側に結合 変数型のバイト数
& &x 単項アドレス演算子 右側に結合 ポインタ
* *x 単項間接演算子 右側に結合  
+ #NAME? 単項+演算子 右側に結合 正数を明示する
#NAME? 単項-演算子 右側に結合 負数を明示する
~x 補数演算子 右側に結合  
! !x 論理否定演算子(条件文) 右側に結合  
( ) (double)x キャスト演算子 左側に結合  
* x*y 2項乗算演算子 左側に結合  
/ x/y 2項除算演算子 左側に結合  
% x%y 2項剰余演算子 左側に結合  
+ x+y 2項加算演算子 左側に結合  
x-y 2項減算演算子 左側に結合  
< < x< 整数左シフト演算子 左側に結合  
>> x>>y 整数右シフト演算子 左側に結合  
< x <演算子(条件文) 左側に結合  
< = x< =y <=演算子(条件文) 左側に結合  
> x>y >演算子(条件文) 左側に結合  
>= x>=y >=演算子(条件文) 左側に結合  
== x==y ==演算子(条件文) 左側に結合  
!= x!=y !=演算子(条件文) 左側に結合  
& x&y 論理積(AND)演算子 左側に結合  
10 ^ x^y 排他的論理和(XOR)演算子 左側に結合  
11 | x|y 論理和(OR)演算子 左側に結合  
12 && x && y 論理積(AND)演算子(条件文) 左側に結合  
13 || x || y 論理和(OR)演算子(条件文) 左側に結合  
14 ?: x?y:x 条件付き演算子 右側に結合  
15 = x=y 代入演算子 右側に結合  
+=、-=、*= 複合代入演算子 右側に結合  
/=、%=、< <=
>>=、&=、^=
|=
16 , x,y コンマ演算子 左側に結合  

この表は「c言語による演算」にある「演算記号の優先順位」を参考にしました。