第5章 データ型など


さて、前回のソース・プログラムでまだ解説していないことがいくつかあります。

int a = 15, b = 20;
のところですが、intは、変数aや変数bのデータ型を表しています。 どうして、こんな物が必要かというと、(入門書には必ず書いてありますが・・・) 要するに、変数は入れ物で、あらかじめその大きさを決めておかないと あとで、「あれ、入れ物が小さくて入らないや!」ということをふせぐためです。 入れ物の大きさは、普通コンピュータの世界では「バイト」を使います。 1バイトは、8ビットです。1ビットというのは、情報量の最小の単位で次の ように考えるとわかりやすいです。

1ビットとは、電球の球である。これを見ると「電気がついている」「電気がついていない」 のどちらかの情報を得ることができます。電球がA,Bと2つあると(2ビット) 「ABともについている」「ABともに消えている」「Aのみついている」「Bのみついている」 と1ビットの時の2倍の情報を得ることができます。3ビットだと1ビットの時の8倍、 4ビットだと16倍です。ビットが1つ増えるごとに2倍になります。こういう計算は、

麻雀をする人間には、いとも簡単である!

が、筆者は麻雀をしないので、結構面倒です。8ビットあると2の8乗で256種類の 情報を表すことができる。ワープロで半角文字は、256種類もあれば十分なので、 これを1バイト文字といったりするのはここから来ている(きっと)。漢字も入ると、とても 1バイトでは、表しきれないので2バイト必要となる。

さて、話を本題に戻すと・・・
変数aやbの大きさを、2バイトだとか、26ビットだとかと宣言したらわかりやすい。 と思いませんか?
ところが、そんな風に決めるといろいろ不都合が起こってきます。 これも、入門書に必ず書いてありますので気になる人は読んでください。
int は、普通2バイトのデータサイズを表します。しかし、システムによっては 必ずしも2バイトとは決まっていません。 2バイトとすると、2の16乗(65536)種類の情報を表すことが できるはずです。intはinteger(整数)の意味ですから、整数を 65536種類表すことができます。また、整数にはマイナスもありますから、 実際には、int は−32768から、+32767までを表すことができます。 従って、上のソースファイルを、

a = -32769, b = 32768;
のように変えるとどうなるでしょうか。実験してみましょう。


Outputウィンドウに、warning C4309というのが出ました。 これは、「識別子が、確保された領域からあふれました。」と いう意味です。要するに、int型の入れ物を用意したのに、 それより大きな物を入れのであふれちゃったよ、と言っているのです。
ここで、注意しなくてはいけないことは、ビルドの設定によっては、 warningだけだと、EXEができちゃうことです。このEXEを 実行すると何が起こるかわかりません。絶対に実行してはいけません。

触らぬ神にたたりなし!

です。
int型以外に、どんな型があるのか? 表にまとめたので参考にしてください。
説明
文字型char世界共通1バイト!
整数型int普通2バイト
long普通4バイト
浮動小数点型float普通4バイト
double普通8バイト

このほかにも、整数型についてはshort型があったり、また型の前に unsignedとか、signedなどがついたりすることもあります。 今覚えなくとも、必要が生じたらすぐにわかります。 (ここのHPは、必要最小限のことしか解説しない!)


[Index][総合Index] [Previous Chapter] [Next Chapter]

Update Oct/14/1996 By Y.Kumei
当ホーム・ページの一部または全部を無断で複写、複製、 転載あるいはコンピュータ等のファイルに保存することを禁じます。