変数について
「変数」と聞いて、何を思い浮かべるでしょうか?
中学校の数学で習った、x とか y とかを思い浮かべる人もいるでしょう。
プログラムにおける変数も、ほぼ同じ意味で使われます。
簡単に説明すると、何らかの値を保存しておくための箱に名前をつけたものを変数と呼びます。

図を見てみてください。
この図では、変数 x, y, z という 3 つの箱(変数)を用意して、それぞれに 100、0.1、"こんにちは"という値を入れています。
プログラムとは、この変数に値を入れたり取り出したりすることで処理を組み上げる、と考えてもらって大丈夫です。
ココがポイント
変数は値を保存しておくための箱に名前をつけたもの
C言語における変数の型
少しだけややこしいのですが、変数を使用する場合には、「型」というものを意識する必要があります。
型とは、値の種類によって箱の形を変える必要があり、その形を型と呼びます。
具体例をあげます。

図を見てみて下さい。
先程の図とほぼ同じなのですが、今回は値の種類によって、箱の色を変えています。
それぞれ 整数・小数・文字列 という種類で、これらは別々の型を使用する必要があるのです。
変数に値を入れるときには、必ず同じ型の変数に入れる必要があります。
つまり、整数型の変数には整数しか入れることができません。
(例えば、整数の型の変数に小数の値を入れることはできません。
ココがポイント
変数には型がある。値の種類によって型を変える必要がある。
変数の宣言
それでは、さっそくC言語で変数を作成してみましょう。
(今のプログラムの、printf の次の行に書けば大丈夫です。)
変数の作成には、以下のようなプログラムを書きます。
まずは一番簡単な、整数の変数を作ってみます。
int x;
int というのが、整数の型を表します。
(これは integer の略で、英語で整数を意味します。
そして x というのが変数の名前です。
このコードで、xという名前の整数を保存しておける変数を用意した、ということになります。
次に小数の変数を作ってみます。
float y;
float というのが、小数の型を表します。
(これは floating point の略で、英語で浮動小数点を表します。
このコードで、 yという名前の小数を保存しておける変数を用意した、ということになります。
※次に文字列と行きたいのですが、文字列については少しややこしいため、後の章で説明します。
このように、変数を作成することを、変数を宣言するといいます。
ココがポイント
型名 変数名; というコードで、変数を宣言できる
変数の命名規則
変数には、命名規則があります。
x や y のようにアルファベットを使用することができます。
そのほかにも、数字 と _(アンダースコア)を使用できます。
変数の最初は、数字であってはいけません。
また、予約語と呼ばれる、C言語であらかじめ予約されている名前も使うことができません。(たとえば、型名である int、float など)
これだけの決まりを守ってもらえれば、どんな名前をつけても OK です。
例)
int max_num; // 最大数を表す整数の変数
float min_size; // 最小サイズを表す少数の変数
int command2; // コマンド2を表す整数の変数
一般的にはその数値が何を表すかの名前をつけるのが良いです。
実は x とは y とかは何を意味するのか分かりにくいため、あまり良くありません。
最初のうちは深く考えずに自由に変数名をつけてしまいましょう。
ココがポイント
変数名は アルファベット、数字、_ を組み合わせて名付ける
変数の代入
変数を宣言することができました。
しかし、変数には値を代入しなくては作った意味がありません。
値を代入するには、以下のようにします。
int x;
x = 100;
このように、 = を使うことで、x という変数に 100 という数値を代入することができます。
x ← 100; のように、矢印で考えてもらうと分かりやすいかもしれません。
ココがポイント
変数には = で値を代入できる
変数の取り出し
代入した変数は、取り出すこともできます。
取り出すには以下のようにします。
int x;
int x2;
x = 100;
x2 = x;
これで、最終的に x2 という変数に、x に入っている変数、つまり 100 を取り出して代入することができます。
つまり取り出すには、x という変数名の表記だけで良いのです。
ココがポイント
変数名を使うことで、変数の中身を取り出すことができる
変数を使うメリット
ここまで変数の説明と変数の宣言と使い方をみてきましたが、最後にメリットをお伝えしておきます。
最終的には変数なしではプログラミングは不可能なのですが、分かりやすいメリットをあげておきます。
ココがポイント
- 数値に名前をつけることで、プログラムが分かりやすくなる
- 中身の値を変更することができるので、同じプログラムで異なる処理を行える
いかがだったでしょうか?
変数について理解できたでしょうか?
もしかしたら、まだいまいちピンときていないかもしれませんが、
プログラムの機能って、実際に使って必要性を感じて初めて理解できるため、それも無理はないかもしれません。
次回は変数を使って簡単な計算を行ってみようと思います。