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倍になります。こういう計算は、
さて、話を本題に戻すと・・・
変数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を
実行すると何が起こるかわかりません。絶対に実行してはいけません。
説明 | ||
---|---|---|
文字型 | char | 世界共通1バイト! |
整数型 | int | 普通2バイト |
long | 普通4バイト | |
浮動小数点型 | float | 普通4バイト |
double | 普通8バイト |
このほかにも、整数型についてはshort型があったり、また型の前に unsignedとか、signedなどがついたりすることもあります。 今覚えなくとも、必要が生じたらすぐにわかります。 (ここのHPは、必要最小限のことしか解説しない!)
Update Oct/14/1996 By Y.Kumei