C 言語の演算子にも数学と同じように計算(評価)される順序がある。以下に一部の演算子の優先順位をまとめる。
演算子 | 結合規則 | ||
---|---|---|---|
1 | ++ |
後置インクリメント | 左 |
-- |
後置デクリメント | ||
2 | ++ |
前置インクリメント | 右 |
-- |
前置デクリメント | ||
3 | % |
剰余(割り算の余り) | 左 |
* |
乗算 | ||
/ |
除算 | ||
4 | + |
加算 | 左 |
- |
減算 | ||
5 | = |
代入(前ページのものも含む) | 右 |
()
で優先的に評価させることもできる。
結合規則
上の表で「結合規則」という列があるが,これは同じ優先順位の演算子を右から評価するか,左から評価するかを示している。たとえば, 5 % 3 * 7 / 2
は %, *, /
演算子が左結合なので ()
でわかりやすくすると次のようになる。
((5 % 3) * 7) / 2
また,a = b = c;
は =
演算子が右結合なので以下のようになる。
a = (b = c);