C言語の変数宣言と初期化のルールを完全ガイド!初心者でもわかる基本解説
生徒
「C言語って、変数を使うって聞いたんですけど、そもそも変数ってなんですか?」
先生
「C言語でプログラムを書くときには、計算した値や入力された情報をどこかに覚えておく必要があります。その保存する場所が変数です。」
生徒
「保存する場所って、具体的にどうやって用意するんですか?」
先生
「C言語では、変数を使う前に宣言という決まりがあります。そして、中に最初の値を入れることを初期化と言います。今回はその方法をくわしく見てみましょう。」
1. C言語の変数宣言とは?
C言語の変数宣言とは、プログラムの中で「この名前の箱を使います」とコンピュータに教える作業です。変数という言葉は少しむずかしく感じられますが、身近なイメージに置き換えると、値を入れておく引き出しやメモ帳のようなものです。箱に名前を付けておくことで、後からその箱を呼び出して中身を読み取ったり、書き換えたりできるようになります。
変数は好きな名前をつけて良いわけではなく、C言語のルールに従う必要があります。ひらがなや漢字は使えませんし、数字で始めることもできません。変数名は、アルファベットと数字、アンダーバーを組み合わせて作ります。「age」「score」「total」など、プログラムの意味がわかりやすい名前にするとミスを減らすことができます。
変数を宣言するときは、必ずデータ型を指定します。データ型とは、「どんな種類の値を入れる箱なのか」という情報です。たとえば整数を入れる箱はint、小数を入れる箱はdouble、文字を入れる箱はcharと決められています。
宣言の書き方はとてもシンプルで、次のようになります。
int number;
double height;
char initial;
このように宣言することで、C言語のプログラムは「これからnumberという整数の箱を使います」と理解します。
2. C言語の初期化とは?
変数は宣言しただけでは、中身が決まっていない状態になります。この状態のまま使うと、予想できない動作をする危険があります。そこで、変数を作ったときに最初の値を入れておくことを初期化といいます。
初期化の書き方は、次のように宣言と同時に値を入れます。
int score = 100;
double weight = 55.5;
char grade = 'A';
「scoreの箱には最初から100が入っています」という意味になります。C言語では、宣言と同時に初期化する方法がよく使われます。これを習慣にしておくと、未初期化によるエラーやバグを減らすことができます。
3. 複数の変数をまとめて宣言する方法
同じ型の変数が複数必要なとき、1行でまとめて宣言することもできます。例えば、3つの整数を使う場合、次のようになります。
int a, b, c;
もちろん宣言と同時に初期化することもできます。
int x = 10, y = 20, z = 30;
ただし、すべての変数が同じ型であることが条件です。違う型を混ぜて宣言することはできません。
4. メモリと変数の関係を分かりやすくイメージしよう
C言語で変数を宣言すると、コンピュータのメモリ上に一定の広さが確保されます。メモリは大きな倉庫のようなもので、変数はその倉庫の一部を占領するイメージです。整数型であれば決まったサイズの部屋、小数ならもう少し広い部屋というように、データ型によって必要な広さが異なります。
たとえばintは多くの環境で4バイト、charは1バイト使います。これは、どれだけの情報を入れられるかに関係しています。小さな箱には大きな物を入れられませんし、逆に大きな箱を使えば無駄が生まれます。そのため、プログラマはどの型を使うのかを考えながら変数を宣言します。
5. 初心者が気をつけるべきポイント
C言語初心者が失敗しやすいポイントとして、宣言だけして初期化しないまま使ってしまう問題があります。中身が未定義の状態で計算や表示を行うと、毎回違う結果になったり、正しく動かない原因になります。最初に値を入れておくか、必ずプログラムの中で代入してから使うようにしましょう。
また、変数名は意味のある名前を付けることが、とても大きな助けになります。たとえば、得点を保存したいのにaという名前にすると、あとからプログラムを読んだときに意味が分からなくなります。「score」「total」「count」などのように、見ただけで役割が想像できる名前にしておくと、理解しやすいプログラムになります。
6. 変数を使ってみる簡単なサンプル
実際に変数を宣言して、初期化して、画面に表示してみましょう。とても基本的なプログラムですが、C言語の変数がどのように使われるかが分かります。
#include <stdio.h>
int main(void)
{
int price = 120;
int count = 3;
int total = price * count;
printf("合計金額は%d円です。\n", total);
return 0;
}
このプログラムを実行すると、次のように表示されます。
合計金額は360円です。
priceには120が入り、countには3が入り、totalには掛け算の結果が入ります。このように、変数同士を組み合わせて処理することで、C言語のプログラムは現実の計算や処理を再現できます。