目標
変数について理解し、変数を宣言して実際に利用できる。
変数とは
変数とは、値を入れる箱です。
変数の名前を変数名といい、変数に値を入れることを代入といいます。
上の画像は、変数 a へ 32 を代入する様子を表しています。
これを C 言語で書くと、次のようになります。
a = 32;
これは、a と 32 が等しいことを表しているわけではありません。
変数は箱であるため、次のようにして値を変更することができるのです。
上の画像は、あらかじめ 32 が入っている変数 a に 16 を代入する様子を表しています。
これを C 言語で書くと、次のようになります。
a = 16;
このコードを実行すると、先ほど 32 だった変数 a の内容は 16 に変わります。
もともと入っていた 32 という数は消えてなくなってしまいます。
このように、プログラム言語でいう変数は、数学でいう変数とは全く異なるものです。
衝撃的な例に、次のようなものがあります。
この画像は、変数 a の内容に 1 足したものを a に代入することを表しています。
変数 a の内容は 1 ですので、1 + 1 = 2 が新しい変数 a の内容になります。
これを C 言語で書くと、次のようになります。
a = a + 1;
これは数学では絶対にあり得ない式ですが、プログラムとしては正しいです。
変数 a の内容 + 1 を計算して、その結果を変数 a に代入せよという意味です。
演算に関しては、次回詳しくやります。
まずは、数学の変数とプログラムの変数を、切り分けて考えられるようになりましょう。
変数の型
変数には型が存在します。
型は、変数に入れることができる値の種類のことです。
変数の型には、整数と実数の二つあります。
実数の型は、小数点以下も保持したい場合に利用します。
具体的な型名には、次のようなものがあります。
- 整数型
- char (キャラ) --- 8 bit
- short --- 16 bit
- int (イント) --- 32 bit
- long --- 32 bit or 64 bit
- long long --- 64 bit
- 実数型
- float (フロート) --- 32 bit
- double (ダブル) --- 64 bit
- long double --- 64bit or 80 bit
下に書いてある型ほど、大きな値を入れることが可能です。
たとえば、short 型は最大 32,767 までですが、int 型は 2,147,483,647 まで入れられます*2。
この中でよく使われるのが、char 型, int 型, double 型です。
しばらくは、この3つの型のみ使用していくことになります。
変数の宣言
変数を利用するには、変数宣言を行う必要があります。
変数宣言では、変数の型と変数名を宣言します。
たとえば、int 型の変数 a を宣言する場合は、次のように書きます。
int a;
これを抽象的に書くと次のようになります。
変数の型 変数名;
変数名には、半角の英数字とアンダーバー (_ ←これ) が利用できます。
ただし、変数名の先頭に数字は使えません。
printf 関数で数値を表示するには
文字列を表示する関数として printf 関数を前回紹介しました。
今回は printf 関数を利用して数値を表示してみたいと思います。
次のように変数 a が宣言され、値が代入されていたとします。
int a;
a = 10;
変数 a の内容をディスプレイに表示したい場合、次のようにします。
printf("%d\n", a);
このようにすると、変数 a の内容 (= 10 ) が表示され、改行されます。
次のようにして、2つの数値を表示することもできます。
printf("%d %d\n", a, b);
%d の数と表示させる数値の数が対応している点に注目してください。
なお、double 型を表示する場合は、%d の代わりに %f を用います。
printf 関数については、そのうち詳しく扱います。
リテラル
変数とは違い、「10」「3.14」などの値が変化しない数をリテラルと呼びます。
リテラルは、整数の場合は int 型、実数の場合は double 型になります。
例
printf("%d\n", 10);
printf("%f\n", 3.14);
課題
できたら先輩等に見せてください。
課題1
int 型の変数 a に好きな値を代入し、表示させてください。
課題2
double 型の変数 a に適当な値を代入し、その値を表示してください。
課題3
int 型の変数 a, b に適当な値を代入し、その和を表示してください。