2012年7月14日土曜日

型のサイズとsizeof

sizeofという演算子を使えば変数や型のサイズがバイト単位で与えられます。

int i = 9999;
printf("%dバイト, sizeof i); //4バイト
printf("%dバイト", sizeof (int));//4バイト
//型名の場合は()で囲む必要あり。

iの中身は9999という値ですが、sizeofを付けた時に得られるのは変数の値ではなく確保したメモリのサイズです。従って上のどちらのprintfの出力もwindowsなら4バイトになるでしょう。

CやC++は言語仕様としては型のサイズを決めていません。処理系によってどの型がどれだけのメモリを確保するかは違います。今のところwindowsなら32bitOSでも64bitOSでもintは4バイトと決まっている様です。あとchar型が1バイトだという事ぐらいはおおよそどの処理系でも共通しているらしいです。

0 件のコメント: