C言語でプログラミングを行う上で、足し算や引き算といった数値計算は避けて通れません。これらの計算を行うために使われる記号が**「演算子」**です。
この記事では、C言語における数値計算の基本となる算術演算子と、変数に値を設定するための代入演算子について、その種類と使い方を分かりやすく解説します。
代入演算子 =
:変数に値を入れる
まず最初に覚えるべき最も基本的な演算子が、代入演算子 =
です。
数学の「等しい」という意味とは少し違い、プログラミングにおける =
は、**「右辺の値を、左辺の変数に代入(格納)する」**という意味を持ちます。
#include <stdio.h>
int main(void) {
int score; // 変数を宣言
score = 100; // scoreという変数に100を代入
char grade = 'A'; // gradeという変数に'A'という文字を代入
// 注意: 1文字の場合は '' で囲む
printf("点数: %d\n", score);
printf("評価: %c\n", grade);
return 0;
}
算術演算子:四則演算などを行う
算術演算子は、数学の計算で使うおなじみの記号です。
演算子 | 意味 | 使用例 |
+ | 足し算 (加算) | 5 + 3 → 8 |
- | 引き算 (減算) | 5 - 3 → 2 |
* | 掛け算 (乗算) | 5 * 3 → 15 |
/ | 割り算 (除算) | 5 / 3 → 1 (※下記注意) |
% | 剰余 (余り) | 5 % 3 → 2 |
割り算 /
の注意点
C言語では、整数同士の割り算の結果は、小数点以下が切り捨てられ整数になります。 7 / 2
の結果は 3.5
ではなく 3
になります。小数点以下も計算したい場合は、7.0 / 2.0
のように、少なくともどちらかの値を浮動小数点数にする必要があります。
剰余 %
とは
%
は、割り算の余りを求める演算子です。例えば、10 % 3
は、10を3で割った余りである 1
となります。偶数か奇数かを判定する際などによく使われます。
#include <stdio.h>
int main(void) {
int x = 10;
int y = 3;
printf("%d + %d = %d\n", x, y, x + y);
printf("%d - %d = %d\n", x, y, x - y);
printf("%d * %d = %d\n", x, y, x * y);
printf("%d / %d = %d (余り %d)\n", x, y, x / y, x % y);
return 0;
}
インクリメント・デクリメント演算子 ++
, --
変数の値を1だけ増やす(インクリメント)、または**1だけ減らす(デクリメント)**という処理は非常によく使われます。そのための便利なショートカットが ++
と --
です。
count++;
はcount = count + 1;
と同じ意味です。count--;
はcount = count - 1;
と同じ意味です。
int count = 5;
count++; // count の値が 6 になる
count--; // count の値が 5 に戻る
複合代入演算子
score = score + 10;
のように、自分自身の値を使って計算し、結果を再び自分自身に代入する処理も頻繁に登場します。これをより簡潔に書くための演算子が複合代入演算子です。
演算子 | 例 | 同じ意味 |
+= | a += 5; | a = a + 5; |
-= | a -= 5; | a = a - 5; |
*= | a *= 5; | a = a * 5; |
/= | a /= 5; | a = a / 5; |
%= | a %= 5; | a = a % 5; |
#include <stdio.h>
int main(void) {
int total_score = 100;
printf("現在のスコア: %d\n", total_score);
// total_score = total_score + 50; と同じ
total_score += 50;
printf("ボーナス後のスコア: %d\n", total_score);
return 0;
}
まとめ
今回紹介した演算子は、C言語での数値計算における基本中の基本です。
=
: 右の値を左の変数に代入する。+ - * / %
: 四則演算と余りを計算する。++ --
: 1だけ増やしたり減らしたりする。+= -=
など: 計算と代入を同時に行うショートカット。
これらの演算子を使いこなして、様々な計算処理をプログラムで実現してみましょう。