6日でできる 新C言語入門|変数の宣言と代入

値に名前を付けて、計算に使い、結果を残す。
変数の宣言と代入を理解して、C言語プログラムの土台を作ろう。

C言語でプログラムを書くとき、変数はとても重要な役割を持ちます。変数とは、数値や文字などのデータを保存しておくための名前付きの領域です。よく「値を入れておく箱」と表現されます。

たとえば、点数、年齢、個数、合計金額、平均値など、プログラムの中で扱う値を変数に入れておくと、あとから何度でも利用できます。値に分かりやすい名前を付けられるため、プログラムの意味も読み取りやすくなります。

C言語では、変数を使う前に宣言を行います。宣言とは、この名前の変数を使います、そしてこの変数にはこの種類の値を入れます、とコンパイラに伝えることです。さらに、変数に値を入れることを代入と呼びます。宣言と同時に値を入れることは初期化と呼ばれます。

変数を正しく使うには、型、名前、代入、初期化、演算との関係を理解することが大切です。C言語は型を意識する言語なので、整数を入れる変数、小数を入れる変数、1文字を入れる変数などを区別して扱います。

この記事では、変数の基本、宣言と代入、初期化、変数名のルール、主なデータ型、演算での使い方、複数変数の宣言、宣言位置や計算の優先順位について、サンプルプログラムを交えながらやさしく解説していきます。

変数は値を保存するための名前付きの箱

変数は、プログラムの中で値を一時的に保存しておくために使います。値を直接何度も書くのではなく、変数に入れて名前で扱うことで、プログラムが読みやすくなります。

たとえば、テストの点数を扱う場合、85という数値をそのまま何度も書くより、scoreという変数に入れておくほうが意味が分かりやすくなります。scoreと書かれていれば、これは点数を表しているのだと読み取れます。

用語意味
変数値を入れておく名前付きの領域score
宣言変数を使えるようにすることint score;
代入変数に値を入れることscore = 85;
初期化宣言と同時に値を入れることint score = 85;
変数に入れる値の種類int、double、char

C言語では、変数を使う前に必ず宣言します。宣言せずに変数名を書いても、コンパイラはその名前が何を表しているのか分かりません。そのため、変数を使うときは、先に型と変数名を書いて準備します。

図:変数は値を入れる名前付きの箱

この図から分かること

この図から分かるのは、変数が値を保存するための名前付きの箱として使えるという点です。

scoreという箱には点数、priceという箱には価格、rankという箱には評価の文字を入れるように、変数名を使うことで値の意味が分かりやすくなります。C言語では、まず変数を宣言して箱を用意し、その後に値を代入して、計算や表示に利用します。

変数の宣言と代入を使ったサンプルプログラム

まずは、変数を宣言し、そのあとで値を代入して表示するプログラムを見てみましょう。

プロジェクト/ファイル名: Lesson15_1/main.c

#include <stdio.h>

int main(void) {
    // 整数型の変数scoreを宣言する
    int score;

    // 変数scoreに点数を代入する
    score = 85;

    // 変数scoreの値を画面に表示する
    printf("今回の点数は%d点です。\n", score);

    return 0;
}

実行結果

今回の点数は85点です。

このプログラムでは、int score;で整数型の変数scoreを宣言しています。intは整数を扱うための型です。scoreという名前の変数を用意し、そのあとでscore = 85;によって85を代入しています。

printf関数では、%dを使ってscoreの値を表示しています。%dは整数を表示するための書式指定子です。scoreに入っている85が%dの位置に入り、実行結果として今回の点数は85点です。と表示されます。

宣言、代入、初期化の違い

変数を学ぶときに混乱しやすいのが、宣言、代入、初期化の違いです。これらは似ていますが、それぞれ役割が異なります。

書き方呼び方意味
int score;宣言scoreという整数型の変数を使えるようにする
score = 85;代入scoreに85を入れる
int score = 85;初期化scoreを宣言すると同時に85を入れる

宣言は、変数を使うための準備です。代入は、すでに用意された変数に値を入れることです。初期化は、変数を作るタイミングで最初の値を入れることです。

C言語では、変数を宣言しただけでは、意図した値が入っているとは限りません。そのため、変数を使う前に値を入れておくことが大切です。特に初心者のうちは、変数を宣言したらできるだけ早く初期化する習慣をつけると安全です。

変数には型がある

C言語の変数には型があります。型とは、その変数にどのような種類の値を入れるのかを決めるものです。整数、小数、文字など、扱う値の種類によって使う型が変わります。

内容
int整数を扱うint age = 20;
double小数を扱うdouble rate = 1.08;
char1文字を扱うchar grade = 'A';

int型は、点数、年齢、個数、回数など、小数点を含まない値を扱うときによく使います。double型は、平均、割合、円周率など、小数を含む値を扱うときに使います。char型は、AやBのような1文字を扱うときに使います。

C言語では、型を意識することがとても大切です。型が合っていないと、値が思ったように扱われなかったり、表示結果が不自然になったりすることがあります。

変数名の付け方

変数には自由に名前を付けられますが、C言語のルールに従う必要があります。また、ルール上は使える名前でも、分かりにくい名前は避けたほうがよいです。

規則内容
使える文字英字、数字、アンダースコアscore、data1、_value
先頭の文字数字から始めることはできないscore1は可、1scoreは不可
大文字小文字区別されるscore、Score、SCOREは別名
予約語C言語の決まった言葉は使えないint、return、ifなどは不可
分かりやすさ値の意味が伝わる名前にするage、price、totalなど

変数名は、プログラムを読む人に意味が伝わる名前にすることが大切です。たとえば、aやbのような名前は短く書けますが、何を表しているのか分かりにくくなることがあります。

学習用の短いプログラムではaやbを使うこともありますが、実用的なプログラムではscore、price、count、totalのように、意味のある名前を使うと読みやすくなります。

図:変数名と型の考え方

この図から分かること

この図から分かるのは、変数は型、名前、値の組み合わせで考えると理解しやすいという点です。

int score = 85;なら、型はint、変数名はscore、値は85です。double average = 72.5;なら、小数を扱うdouble型の変数averageに72.5を入れていることになります。C言語では、どの型の変数にどのような値を入れるのかを意識することが重要です。

変数を演算に使う

変数は、値を保存するだけでなく、計算にも使えます。2つの変数の合計を求めたり、平均を計算したり、掛け算や割り算の結果を別の変数に保存したりできます。

次のプログラムでは、2つの点数を使って合計点と平均点を求めます。

プロジェクト/ファイル名: Lesson15_2/main.c

#include <stdio.h>

int main(void) {
    // 2つの点数を整数型の変数に保存する
    int math = 76;
    int english = 84;

    // 合計点を保存する変数を宣言する
    int total;

    // 平均点を保存する変数を宣言する
    double average;

    // 2つの点数を足して合計点を求める
    total = math + english;

    // 小数として平均を求めるため、2.0で割る
    average = (math + english) / 2.0;

    // 合計点と平均点を表示する
    printf("数学%d点、英語%d点の合計は%d点です。\n", math, english, total);
    printf("平均点は%f点です。\n", average);

    return 0;
}

実行結果

数学76点、英語84点の合計は160点です。
平均点は80.000000点です。

このプログラムでは、mathとenglishに点数を入れています。totalには合計点、averageには平均点を保存しています。

average = (math + english) / 2.0;では、mathとenglishを足してから2.0で割っています。2ではなく2.0を使っているため、小数を含む計算として扱われます。その結果をdouble型のaverageに保存しています。

整数と小数の計算に注意する

C言語では、整数同士で割り算をすると、結果も整数になります。そのため、小数部分が必要な計算では注意が必要です。

結果の考え方
5 / 2整数同士の割り算なので2になる
5 / 2.0小数を含む計算なので2.5になる
(math + english) / 2整数の平均として計算される
(math + english) / 2.0小数の平均として計算される

平均値や割合のように小数が必要な場合は、double型を使い、割る数も2.0のように小数として書くと分かりやすくなります。

C言語では、型によって計算結果が変わることがあります。見た目は似た式でも、整数として計算されるのか、小数として計算されるのかを意識することが大切です。

複数の変数を同時に宣言する

C言語では、同じ型の変数を複数まとめて宣言できます。また、宣言と同時に初期化することもできます。

次のプログラムでは、長方形の横幅と高さを変数に入れ、面積を求めます。

プロジェクト/ファイル名: Lesson15_3/main.c

#include <stdio.h>

int main(void) {
    // 横幅と高さを同時に宣言し、初期化する
    int width = 6, height = 9, area;

    // 横幅と高さを掛けて面積を求める
    area = width * height;

    // 計算結果を表示する
    printf("横幅=%d, 高さ=%d, 面積=%d\n", width, height, area);

    return 0;
}

実行結果

横幅=6, 高さ=9, 面積=54

このプログラムでは、int width = 6, height = 9, area;のように、同じint型の変数をまとめて宣言しています。widthとheightは初期化されていますが、areaはあとから計算結果を代入しています。

複数の変数をまとめて宣言すると、コードを短くできます。ただし、変数が増えすぎると読みづらくなることもあります。学習中は、意味が分かりやすい範囲で使うとよいでしょう。

初期化していない変数に注意する

変数を宣言しただけで値を入れていない状態では、その変数にどのような値が入っているか分かりません。このような変数をそのまま使うと、意図しない結果になることがあります。

書き方状態
int area;宣言だけで、値はまだ決まっていない
area = width * height;計算結果を代入して使える状態になる
int width = 6;宣言と同時に初期化されている

C言語では、変数を使う前に必ず値を入れることを意識しましょう。初期化していない変数をprintf関数で表示したり、計算に使ったりすると、予想できない値になることがあります。

初心者のうちは、変数を宣言するときにできるだけ初期化する習慣をつけると安全です。

変数の宣言位置

C言語では、変数の宣言位置にも注意が必要です。現在のC言語規格では、処理の途中で変数を宣言できる書き方もあります。しかし、古いコンパイラや学習環境、設定によっては、関数の先頭付近に宣言をまとめる書き方のほうが扱いやすい場合があります。

入門段階では、main関数の中で使う変数を最初のほうにまとめて宣言すると、どの変数を使うのか見通しがよくなります。

プロジェクト/ファイル名: Lesson15_4/main.c

#include <stdio.h>

int main(void) {
    // 使う変数を先に宣言しておく
    double unitPrice = 128.5;
    int count = 4;
    double total;

    // 単価と個数から合計金額を計算する
    total = unitPrice * count;

    // 計算結果を表示する
    printf("単価=%f円\n", unitPrice);
    printf("個数=%d個\n", count);
    printf("合計=%f円\n", total);

    return 0;
}

実行結果

単価=128.500000円
個数=4個
合計=514.000000円

このプログラムでは、main関数の最初のほうでunitPrice、count、totalを宣言しています。その後で計算を行い、結果を表示しています。

変数を先に宣言しておくと、プログラムの中でどのようなデータを扱うのかが分かりやすくなります。特に学習中は、宣言、計算、表示の流れを分けて書くと理解しやすくなります。

図:宣言、代入、演算、表示の流れ

この図から分かること

この図から分かるのは、変数を使ったプログラムには、宣言、代入または初期化、演算、表示という基本的な流れがあるという点です。

C言語では、まず変数を用意し、その変数に値を入れます。その値を使って計算し、必要に応じて結果をprintf関数で表示します。この流れを理解すると、変数を使うプログラムの読み方や書き方が分かりやすくなります。

計算の優先順位

C言語では、計算の順番には優先順位があります。基本的には数学と同じように、掛け算や割り算が足し算や引き算より先に計算されます。

計算の流れ結果
2 + 3 * 43 * 4を先に計算し、そのあと2を足す14
(2 + 3) * 42 + 3を先に計算し、そのあと4を掛ける20
10 - 6 / 26 / 2を先に計算し、そのあと10から引く7
(10 - 6) / 210 - 6を先に計算し、そのあと2で割る2

計算の順番をはっきりさせたいときは、丸かっこを使います。丸かっこを使うと、読み手にも意図が伝わりやすくなります。

プログラムでは、正しく動くだけでなく、あとから読んだときに分かりやすいことも大切です。複雑な式を書くときは、丸かっこや変数を使って、計算の意味を整理しましょう。

代入の=は右の値を左へ入れる

C言語で使う=は、数学の等号とは少し意味が違います。C言語では、右側の値や計算結果を左側の変数に入れるという意味になります。

書き方意味
score = 85;85をscoreに入れる
total = math + english;math + englishの結果をtotalに入れる
area = width * height;width * heightの結果をareaに入れる

たとえば、total = math + english;は、totalとmath + englishが等しいという宣言ではありません。math + englishを計算し、その結果をtotalに保存するという処理です。

この考え方はC言語の基本です。変数に値を入れる、計算結果を保存する、あとからその値を使う、という流れをしっかり意識しましょう。

変数を使うとプログラムが読みやすくなる

変数を使うと、値に意味のある名前を付けられるため、プログラムが読みやすくなります。

たとえば、128.5 * 4と書くよりも、unitPrice * countと書いたほうが、単価と個数を掛けていることが分かりやすくなります。さらに、その結果をtotalに入れれば、合計金額を表していることも読み取れます。

書き方読みやすさ
128.5 * 4数値の意味が分かりにくい
unitPrice * count単価と個数を掛けていることが分かる
total = unitPrice * count;合計を求めていることが分かる

プログラムは、コンピュータに正しく伝わるだけでなく、人間が読んでも分かりやすいことが大切です。分かりやすい変数名を使うと、あとから修正したり、他の人に説明したりするときにも役立ちます。

よくあるミスと確認ポイント

変数の宣言と代入を学ぶときには、いくつかのよくあるミスがあります。エラーが出た場合は、落ち着いて確認しましょう。

よくあるミス確認するポイント
変数を宣言せずに使うintやdoubleなどで先に宣言しているか
変数名を間違える宣言した名前と使っている名前が一致しているか
大文字小文字を間違えるscoreとScoreは別の変数として扱われる
初期化していない変数を使う使う前に値を代入しているか
予約語を変数名にするint、return、ifなどを名前にしていないか
型に合わない値を入れるintに小数を入れていないか
セミコロンを忘れる宣言や代入の文末を確認する

C言語は、大文字と小文字を区別します。score、Score、SCOREはすべて別の名前として扱われます。変数名を入力するときは、つづりと大文字小文字を丁寧に確認しましょう。

また、変数を宣言しただけで値を入れていない状態のまま使うことにも注意が必要です。使う前に必ず代入または初期化をしておくと、意図しない動作を防ぎやすくなります。

変数の使い方に慣れるために

変数の宣言と代入は、C言語の基本中の基本です。最初は、int型の整数変数から始めると分かりやすいです。点数、個数、価格、回数など、身近な整数を変数に入れて表示してみると、変数の役割がつかみやすくなります。

慣れてきたら、double型を使って小数を扱ったり、char型を使って1文字を扱ったりしてみましょう。さらに、複数の変数を使って合計や平均を求めると、変数と演算の関係が理解しやすくなります。

学習の進め方内容
int型から始める整数の値を保存して表示する
代入を試す変数に値を入れて表示する
初期化を試す宣言と同時に値を入れる
演算に使う変数同士を足したり掛けたりする
double型を使う小数の計算を試す
char型を使う1文字の扱いを確認する

変数を使えるようになると、プログラムで扱える内容が大きく広がります。値を保存し、計算し、結果を表示するという流れは、条件分岐、繰り返し、関数、配列など、今後の学習にもつながります。

変数の理解はC言語学習の大切な土台

変数の宣言と代入を理解すると、C言語のプログラムがかなり読みやすくなります。どの値を保存しているのか、どのタイミングで値を入れているのか、どの計算に使っているのかを追いやすくなるためです。

C言語では、型を決めて変数を宣言し、必要な値を代入し、演算や表示に利用します。この流れをしっかり身につけることで、より複雑なプログラムにも対応しやすくなります。

変数は、単なる値の置き場ではありません。プログラムの中でデータに意味を持たせ、処理の流れを分かりやすくするための大切な道具です。まずは短いプログラムで、宣言、代入、初期化、演算、表示の流れを何度も確認していきましょう。