📦 変数・型・演算子
🎯 5つの算術演算子と優先順位を理解し、複合代入・インクリメントを正しく使える
計算の記号を演算子と呼びます。Cの算術演算子は5つだけです。
・+ 足す ・- 引く ・* 掛ける ・/ 割る ・% 余り
掛け算は × ではなく *、割り算は ÷ ではなく / を使います。
優先順位——どれが先に計算されるか
#include <stdio.h>
int main(void) {
printf("%d\n", 2 + 3 * 4);
printf("%d\n", (2 + 3) * 4);
printf("%d\n", 10 - 4 - 3);
printf("%d\n", 17 % 5 + 1);
return 0;
}出力は 14、20、3、3 です。ルールは算数と同じで、* / % が + - より先。同じ強さなら左から右へ。10 - 4 - 3 は (10 - 4) - 3 と解釈されます。
迷ったら括弧を書きます。括弧は読む人へのコメントでもあります。
複合代入——同じ変数を更新する
#include <stdio.h>
int main(void) {
int tokuten = 100;
tokuten += 50; // tokuten = tokuten + 50 と同じ
tokuten -= 20;
tokuten *= 2;
tokuten /= 3;
printf("%d\n", tokuten);
return 0;
}150 → 130 → 260 → 86(整数の割り算なので切り捨て)。出力は 86 です。+= は「自分自身を使って更新する」ときの定型で、変数名を2回書かずに済みます。
インクリメントとデクリメント
#include <stdio.h>
int main(void) {
int n = 5;
n++; // 1増やす
++n; // これも1増やす
n--; // 1減らす
printf("%d\n", n);
return 0;
}出力は 6。単独の文として使うぶんには n++ と ++n に違いはありません。差が出るのは式の中で使ったとき(int a = n++; と int a = ++n;)ですが、そもそも式の中に混ぜないのが安全です。ループでの使い方はトラック6で扱います。
罠・注意
% は整数専用。 7.5 % 2 はコンパイルエラーです。小数の余りが必要なら math.h の fmod を使います。
0で割ってはいけない。 整数の x / 0 はプログラムが異常終了します。% も同じです。割る前に0でないか確かめます。
単項マイナスは強い。 -3 * 2 は (-3) * 2 と解釈されます。
優先順位に頼りすぎない。 正しく書けていても、読む人が3秒迷うなら括弧を足します。3秒は3か月後の自分の時間でもあります。
* と / が先、あとは左から右。これだけ覚えたら、残りは括弧で守ればいいよ。まとめ
算術演算子は + - * / % の5つ。* / % が優先で、同じ強さなら左から右。+= などの複合代入と ++ -- で更新を短く書けます。% は整数のみ、0除算は事故。迷ったら括弧です。
+や-、==など、値どうしを計算したり比較したりするための記号のこと。演算子ごとに計算される優先順位があらかじめ決まっている。+ - * / のような算術演算子のほか、比較や論理の演算子も含まれる。
値を入れておくための名前付きの箱のこと。名前をつけることで中身を自由に出し入れできる、プログラムの記憶場所にあたる。変数名は自由に付けられるが、意味の分かる名前にすると読みやすいコードになる。
もっと先へ:ポインタ・メモリ・ファイル入出力・セキュアコーディングを含む全26トラックと、段位検定・模試のフルセットは完全版に収録しています。