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

今の段階では、
「評価は置換されながら、優先順位と結合規則に従って進む」
というイメージを持てていれば十分です😊