C言語入門 変数

Last-modified: 2015-05-29 (金) 11:20:25
 

目標

変数について理解し、変数を宣言して実際に利用できる。

変数とは

変数とは、値を入れる箱です。
変数の名前を変数名といい、変数に値を入れることを代入といいます。

variable.png

上の画像は、変数 a へ 32 を代入する様子を表しています。
これを C 言語で書くと、次のようになります。

a = 32;

これは、a と 32 が等しいことを表しているわけではありません
変数は箱であるため、次のようにして値を変更することができるのです。

variable2.png

上の画像は、あらかじめ 32 が入っている変数 a に 16 を代入する様子を表しています。
これを C 言語で書くと、次のようになります。

a = 16;

このコードを実行すると、先ほど 32 だった変数 a の内容は 16 に変わります。
もともと入っていた 32 という数は消えてなくなってしまいます。

このように、プログラム言語でいう変数は、数学でいう変数とは全く異なるものです。

衝撃的な例に、次のようなものがあります。

variable3.png

この画像は、変数 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

*1

下に書いてある型ほど、大きな値を入れることが可能です。
たとえば、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 に適当な値を代入し、その和を表示してください。

 


*1 括弧内は読み、ビット数は現在の一般的なコンピューターのものです。
*2 符号有り整数の場合。short 型は 16 bit、int 型は 32 bit と仮定