データの種類によって,記憶する方法や必要なメモリーの大きさが異なる.そのため,デー タには型を決めなくてはならない.その型には文字型や整数型,実数型がある.それぞれ は,表2のようにさらに細かく分類できる.取り扱うデータに よって,最適な型を選択する必要がある.
いろいろな型があるが,諸君が使うのは以下の3つである.本講義では,これ以外の型を 使うことはないだろう.まず,この3つの使い方に慣れよ.
表2を見て分かるように,文字型の範囲は整数となっている.
これは,文字を整数で表しているためである.教科書p.374の付録1 ANSI(ASCII)コード表
に文字と整数の対応が書かれている.
型名 | データ型 | ビット数 | 範囲 |
文字型 | char | 8 | -128〜127 |
singed char | 8 | -128〜127 | |
unsinged char | 8 | 0〜255 | |
整数型 | short int | 16 | -32768〜32767 |
signed short int | 16 | -32768〜32767 | |
unsigned short int | 16 | 0〜65535 | |
int | 32 | -2147483648〜2147483647 | |
signed int | 32 | -2147483648〜2147483647 | |
unsigned int | 32 | 0〜4294967295 | |
logn int | 32 | -2147483648〜2147483647 | |
singed long int | 32 | -2147483648〜2147483647 | |
unsigned long int | 32 | 0〜4294967295 | |
実数型 | float | 32 | 正負とも約〜約 精度約6桁 |
double | 64 | 正負とも約〜約 精度約15桁 | |
long double | 96 | 正負とも約 〜約 精度約18桁 |
char a, b, hoge; int i, j, fuga; double x, y, foo;
代入演算子は,以下のようにして使う.
a='f'; hoge=a; i=3456; fuga=i+789; x=3.1415; foo=x/9.876;
キーボードから読み込む場合は,以下のようにする.
scanf("%c",&hoge); scanf("%d",&fuga); scanf("%lf",&foo);
printf("%c\n",hoge); printf("%d\n",fuga); printf("%f\n",foo);
実数型のデータの表示には,変換仕様%fを使ってきた.これだと,非 常に大きな数や小さい数を表示する場合,不便である.ゼロがたくさん並ぶことになり, 見苦しい.このような場合,指数形式%lfが適している.また,新しいC言語の仕 様C99ではscanfとの対応を考えて,%lfが使えるようになっている.
printf("%e\n",foo); printf("%lf\n",foo);
以上をまとめると,表3のようになる.