
C言語入門|式がどの順番で計算されるのか:C言語評価ルールの基礎
C言語でプログラムを書いていると、
「この式って、どこから計算されているの?」
「見た目どおりに左から順番じゃないの?」
と、ふと不安になることがありますよね🤔
実はC言語では、式が評価される順番がしっかりルールとして決められています。
この仕組みを理解しておかないと、
「思っていた結果と違う!」
という落とし穴にハマってしまうこともあります💦
でも安心してください😊
C言語の評価ルールは、たった 3つの基本原則 を押さえるだけでスッと理解できるようになります。

💡 式の評価とは何をしているの?
プログラムに書かれた式を、コンピュータが計算して結果を出すことを
式の評価(evaluation) といいます。
ここでいう計算は、足し算や引き算だけではありません。
- 値を代入する。
- 条件を判定する。
- 式の一部を別の値に変える。
これらすべてが「計算」として扱われます😊
たとえば次のプログラムを見てみましょう👇
プロジェクト名:3-3-1 ソースファイル名: sample3-3-1.c
#include <stdio.h>
int main(void)
{
int x;
int y;
x = 8;
y = x + 4;
printf("xの値は%dです\n", x);
printf("yの値は%dです\n", y);
return 0;
}出力結果👇
xの値は8です
yの値は12ですy = x + 4
この1行の中にも、評価ルールがギュッと詰まっています✨
🔁 評価の第一原則:置換の原則
まず、いちばん大切なのが 置換の原則 です。
🔑 置換の原則
演算子は、周囲のオペランドを使って計算を行い、
使われた部分を 計算結果に置き換える。
たとえば、とてもシンプルな式👇
2 + 6この式は、次のように評価されます。
2 + 6
↓ 置換
8演算子 + が、左右のオペランド 2 と 6 を使って計算し、
式全体が 8に化ける(置き換わる) というイメージです😊
🔁 複数の演算子がある場合はどうなる?
次は、少し長い式を見てみましょう👇
10 - 3 + 1この場合も、段階的に置換が行われます。
10 - 3 + 1
↓ 置換
7 + 1
↓ 置換
8式は一気に計算されるのではなく、
部分ごとに評価 → 置換 → 次の評価
という流れで進んでいきます✨
🥇 評価の第二原則:優先順位の原則
次に重要なのが 優先順位 です。
🔑 優先順位の原則
異なる種類の演算子がある場合、
優先順位の高い演算子から先に評価される。
たとえば、次の式👇
2 + 4 * 3一見、左から順に計算したくなりますが…
C言語では 掛け算の方が足し算より優先順位が高い ため、こう評価されます。
2 + 4 * 3
↓ 4 * 3 を先に評価
2 + 12
↓
14✨ カッコを使うと評価順を変えられる
「いや、先に足し算したい!」
そんなときは カッコ を使います😊
(2 + 4) * 3評価の流れ👇
(2 + 4) * 3
↓
6 * 3
↓
18カッコで囲まれた部分は、
優先順位を強制的に引き上げる 効果があります✨
🔄 評価の第三原則:結合規則
「同じ優先順位の演算子が並んだらどうなるの?」
ここで登場するのが 結合規則 です😊
🔑 結合規則の原則
同じ優先順位の演算子が複数ある場合、
演算子ごとに決められた 評価の方向 に従って評価される。
➡ 左結合の例(+ 演算子)
+ 演算子は 左から右 に評価されます。
5 + 3 + 2評価の流れ👇
5 + 3 + 2
↓
8 + 2
↓
10⬅ 右結合の例(= 演算子)
一方、代入演算子 = は 右から左 に評価されます。
a = b = 7;評価の流れはこうです👇
1️⃣ まず b = 7 が評価され、b に 7 が代入される
2️⃣ 式全体が a = 7 に置き換わる
3️⃣ a に 7 が代入される
最終的に👇
a は 7
b は 7という結果になります😊
🧠 3つの評価ルールをまとめて整理しよう
| ルール名 | 内容 |
|---|---|
| 置換の原則 | 計算された部分は結果に置き換わる。 |
| 優先順位 | 優先順位の高い演算子から評価される。 |
| 結合規則 | 同順位なら評価方向(左 or 右)で決まる。 |
この3つが、C言語の式評価の「骨組み」です✨
🌱 今は暗記しなくて大丈夫!
「優先順位も結合規則も多くて大変そう…😣」
と思ったかもしれませんが、安心してください。
- よく使う演算子は限られている。
- プログラムを書いていれば自然に身につく。
- 必要になったら調べればOK
今の段階では、
「評価は置換されながら、優先順位と結合規則に従って進む」
というイメージを持てていれば十分です😊
