
C言語のきほん|C言語の演算のしくみ
C言語の計算は、式と演算子が主役。しくみを押さえると、コードの意味がスッと読めるようになる。
第5章では、printf で値を表示したり、scanf で値を入力したりして、「プログラムが外とやり取りできる」ようになりました。
第6章では、いよいよその値を使って、プログラムの中で 演算 を行っていきます。
演算というと足し算・引き算のイメージが強いですが、C言語での演算はもっと広い意味を持ちます。
- 数値を計算する(足す、引く、掛ける、割る)
- 条件を比べる(大きいか、小さいか、等しいか)
- 条件を組み合わせる(かつ、または、否定)
- 値を代入して更新する(右辺の結果を左辺へ入れる)
- 符号を反転する、1増やす、1減らす
こうした「データを操作するための仕組み」が、演算子と式です。
この節では、演算の土台になる 式・式文・演算子・オペランド を、やさしく丁寧に整理していきます。
演算を理解するための4つのキーワード
ここを押さえると、C言語の演算がスッキリ見えてきます。
| 用語 | ざっくり言うと | 例 |
|---|---|---|
| 式 | 値を作るもの(計算や代入、関数呼び出しなど) | a + 10、x = y、sqrt(16.0) |
| 式文 | 式にセミコロンを付けて実行できる形にしたもの | a = 5 + 3; |
| 演算子 | 操作を表す記号 | +、-、*、/、=、>、&& |
| オペランド | 演算の対象(操作される側) | a、10、(a + b) |
この4つを順番に見ていきましょう。
式とは
式は、C言語で「値を表したり、値を計算して作ったりするもの」です。
式の結果は、何らかの値になります(数値や文字、または処理結果など)。
式の例
次のようなものが式です。
- 123(数値定数)
- 'X'(文字定数)
- "COMPUTER"(文字列リテラル)
- a(変数)
- a + 10(演算子で結合した式)
- y = x(代入も式)
- sum = a + b(計算して代入する式)
- sqrt(16.0)(関数呼び出しも式)
ポイントは、C言語では 代入も式 だということです。
これが他の言語から来た人が少し驚くポイントでもあります。
代入式とは
代入式は、右辺で得られた値を左辺の変数へ入れる式です。
代入演算子 = を使います。
代入式の例
int a, b;
a = 5;
b = a;
- a = 5 は「5をaに入れる」
- b = a は「aの値(今は5)をbに入れる」
代入は「計算結果を保存して、後で使えるようにする」ための基本動作です。
式文とは
式だけでは「計算の形」ですが、実際にプログラムとして動かすには「文」として書く必要があります。
そこで出てくるのが式文です。
式文は、式の後ろにセミコロンを付けたものです。
例:計算して代入する式文
a = 5 + 3;
この1行が実行されると、
- 5 + 3 が計算される
- 結果の 8 が a に代入される
という流れになります。
例:関数呼び出しも式文になる
printf("%d", a);
printf の呼び出しは式であり、セミコロンを付けることで式文になって実行されます。
演算子とは
演算子は、式の中で「操作」を表す記号です。
たとえば + は加算、- は減算です。
よく出てくる算術演算子
| 演算子 | 意味 | 例 |
|---|---|---|
| + | 足し算 | a + b |
| - | 引き算 | a - b |
| * | 掛け算 | x * y |
| / | 割り算 | x / y |
この章では、算術演算子だけでなく、比較や論理の演算子も扱っていきますが、まずは「演算子は操作の記号」と覚えるのが大切です。
オペランドとは
オペランドは、演算子によって操作される対象です。
変数や定数だけでなく、式そのものがオペランドになることもあります。
例:
- a + 10 のオペランドは a と 10
- sum = a + b のオペランドは sum と (a + b)
演算子はオペランドに対して操作を行い、結果を作ります。
単項・2項・3項演算子
C言語の演算子は、オペランドがいくつ必要か(項の数)で分類できます。
| 種類 | オペランド数 | 例 | 何をするか |
|---|---|---|---|
| 単項演算子 | 1 | -a、++x | 1つの値を操作する |
| 2項演算子 | 2 | a + b、x * y | 2つの値で計算する |
| 3項演算子 | 3 | (a > b) ? a : b | 条件で値を選ぶ |
単項演算子の例
- -a は符号反転(aが5なら-5)
- ++x はインクリメント(xを1増やす)
2項演算子の例
- a + b は加算
- x * y は乗算
3項演算子の例(条件演算子)
(a > b) ? a : b
意味はこうです。
- a > b が真なら a
- 偽なら b
この演算子は、条件によって結果を選ぶときに使います。
図で見る「項の数による分類」
文字の図にすると、イメージがつかみやすいです。

サンプルプログラムで「式」と「式文」を体験しよう
「式が値を作り、式文で実行される」ことがわかるプログラム例です。
ファイル名:6_1_1.c
#include <stdio.h>
int main(void)
{
int a = 7;
int b = 3;
/* 2項演算子で式を作って、結果を変数に代入する(代入式) */
int sum = a + b; /* a + b は式 */
int diff = a - b;
int prod = a * b;
int quot = a / b; /* int同士の割り算は小数にならない点に注意 */
/* 単項演算子の例(符号反転) */
int neg_a = -a;
/* 3項演算子の例(大きい方を選ぶ) */
int max_value = (a > b) ? a : b;
printf("a=%d, b=%d\n", a, b);
printf("足し算 a+b=%d\n", sum);
printf("引き算 a-b=%d\n", diff);
printf("掛け算 a*b=%d\n", prod);
printf("割り算 a/b=%d\n", quot);
printf("符号反転 -a=%d\n", neg_a);
printf("大きい方 max(a,b)=%d\n", max_value);
return 0;
}実行結果例
a=7, b=3
足し算 a+b=10
引き算 a-b=4
掛け算 a*b=21
割り算 a/b=2
符号反転 -a=-7
大きい方 max(a,b)=7サンプルプログラムの解説
式は値を作る
たとえばこの行の右側は式です。
int sum = a + b;
a + b という式が計算されて値 10 ができて、その値が sum に入ります。
セミコロンが付くと実行される
上の行は初期化の形ですが、同じことを式文として書くとこうです。
sum = a + b;
セミコロンがあるので、この式が実行されます。
式文は「実行される単位」だと思うとわかりやすいです。
3項演算子は条件で値を選ぶ
int max_value = (a > b) ? a : b;
- a > b が真なら a
- 偽なら b
条件で値を選べるので、短く書けて便利です。
この章につながる見取り図
ここまでの内容は、これから学ぶ算術演算子・関係演算子・論理演算子の土台になります。
演算子が増えても、基本の考え方は同じです。
- オペランド(対象)
- 演算子(操作)
- 式(値を作る)
- 式文(実行する)
この4つが頭に入っていると、どんな演算でも読み解きやすくなります。
