
C言語基礎|代入演算子
これまでの内容では、計算結果をそのまま表示したり、初期化によって値を変数に入れたりしてきました。
ここでは、計算した結果を変数に記録するための基本的な仕組みである
代入演算子について、改めて整理していきましょう。
C言語では、変数に値を入れるために = 演算子 を使います。
この演算子は、正式には 単純代入演算子(simple assignment operator)と呼ばれますが、
一般には単に 代入演算子 と呼ばれます。

単純代入演算子とは
代入演算子は、次のような形で使われます。
a = b;これは、
- 右側の値 b を
- 左側の変数 a に入れる
という意味になります。
単純代入演算子の定義
| 演算子 | 形式 | 意味 |
|---|---|---|
| = | a = b | b の値を a に代入する。 |
代入演算子は オペランドを2つ持つ ため、2項演算子に分類されます。
式とは何か
C言語では、値を表すものをまとめて 式(expression) と呼びます。
たとえば、次のものはすべて式です。
x
42
x + 10これらは、
- 変数
- 定数
- 演算によって作られた値
という違いはありますが、すべて式として扱われます。
代入式という考え方
次に、代入を含む次の記述を見てみましょう。
total = price - discount;この場合、
- 左オペランド:total
- 右オペランド:price - discount
となっています。
このように、代入演算子を含む式を
代入式(assignment expression) と呼びます。
重要なのは、次の点です。
代入そのものも「式」として扱われる
つまり、
total = price - discount全体が 1つの式 なのです。
サンプルプログラムで確認しよう
では、代入演算子を使って
計算結果を変数に保存してから表示する プログラムを見てみましょう。
プロジェクト名:chap2-4-1 ソースファイル名:chap2-4-1.c
Visual Studio でこのプログラムを実行するには、SDLチェック設定を変更しておく必要があります。
1.プロジェクト名を右クリックして、「プロパティ」をクリックします。
2.「C/C++」→「全般」→「SDLチェック」を「いいえ」に切り替えて「OK」をクリックします。
// 合計金額と残額を計算して表示
#include <stdio.h>
int main(void)
{
int budget = 1000;
int cost;
printf("使った金額を入力してください:");
scanf("%d", &cost);
int rest = budget - cost; // 代入演算子による代入
printf("予算は%d円です。\n", budget);
printf("残りは%d円です。\n", rest);
return 0;
}実行例
使った金額を入力してください:380
予算は1000円です。
残りは620円です。このプログラムでは、
rest = budget - cost;という 代入式 によって、
- budget - cost が計算され
- その結果が rest に代入され
ています。
式文とは
代入式だけでは、まだ文にはなっていません。
C言語では、文の末尾には必ずセミコロン ; を付ける必要があります。
rest = budget - cost;このように、
- 式
- セミコロン ;
を組み合わせたものを 式文(expression statement) と呼びます。
まとめると
| 用語 | 説明 |
|---|---|
| 式 | 値を持つもの(計算や代入も含む) |
| 代入式 | = を使った式 |
| 式文 | 式の末尾に ; を付けたもの |
代入は「等しい」ではない
初心者の方がよく混乱するポイントとして、
代入演算子 = を「等しい」という意味で捉えてしまうことがあります。
x = 5;これは、
- x と 5 が等しい
という意味ではありません。
正しくは、
- 5 という値を x に入れる
という 一方向の操作 です。
数学の等号とは、意味が異なる点に注意しましょう。
ここまでのポイント整理
- = は 代入演算子
- 代入は 右から左 へ行われる
- 代入も 式の一種
- 式の末尾に ; を付けると 文 になる
これらは、今後の if 文や while 文を理解するための 重要な土台 になります。
