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