変数の型とは?            2007年5月9日 

 年齢を聞いただけじゃ寂しすぎる、今回は名前を聞いてみよう。

 年齢というデータと、氏名というデータの大きな違いはなんだろう?20年前はお母さんかわいかったのよぉ」とか「次の御柱は3年後だから、ンン才かぁ」と言いながら、私たちは頭の中で、自分の年齢から20引いたり、自分の年齢に3足したりする。では「私は今井ですから、前川を足すとちょうど長野諏訪子になります。」なんてまるでなぞなぞ。そう、年齢のデータは計算に使える数値データ、氏名は計算に使えない文字データなのだ。

 数値データ、文字データはさらにいくつかに分類される。そしてそれぞれ整数型、実数型、文字型、文字列型と呼んでいる。変数は、中にどんなデータをしまうかによって、このどれかの型に分類される。まるで人間の血液型のよう。変数ageは整数型ですか、では竹を割ったようなさっぱりした性格でしょう。変数nameは文字列型ですか、それはそれは、繊細でおしとやかな性格でしょ、なんて。

数値データ
 年齢、個数などの小数点の付かない数値データ 「5」とか「-123」とか→整数型
 100m走のタイムなどの小数点の付いた数値データ 「1.2」とか「0.1」とか→実数型

文字データ
  1文字だけの文字データ 「a」とか「t」とか→文字型
  氏名などの、1字以上の長さの文字データ 「日本」とか「japan」とか→文字列型

 変数にどの型のデータが入るのかは、宣言のときに指定する。int型といったん宣言したら、その変数は一生int型。変更できない。これも血液型と同じ。

整数型
 int型を一番よく使う。他にもshortlongなどもあるが、とにかくint型で差し当たり困らない。次のように宣言する。
   int age;

実数型
 double型をよく使う。他にfloat型があるが、とにかくdouble型で差し当たり困らない。次のように宣言する。
   double weight;

文字型
 char型。1文字しか入らないので、差し当たりそんなに登場しない。
   char rank;

文字列型
 文字型の配列を利用する。配列の意味はまだ知らなくてよい。次のように宣言すると半角で最大19文字までの長さの文字列が入れられる。
   char name[20];

 名前を入力して、そのまま画面に表示する処理は次の通り。変数名はnameにしてみた。一応半角で19文字まで入る。全角では半分しか入らないので、最大9文字になる。ちょっと少ないかな。まあご勘弁。前回の年齢のプログラムと比較してみよう。


   #include <stdio.h>
   main() {
    char name[20];       ←変数nameの型は整数型のintでなく、文字列型にする
    scanf("%s", name);    %d%sに、nameの頭に&が付いていない
    printf("%s\n", name);   ←%d%sになっている
     return 0;
  }

 

<前へ|次へ>

<前へ|次へ>

目次へ