ページ 11

sizeof演算子について

Posted: 2010年3月28日(日) 13:15
by あきら
はじめまして。どうしてもよくわからないので教えてください。
sizeof演算子は変数のサイズを調べるとありますが、なぜ4や8になるのかわかりません。

#include <stdio.h>
int main(void)
{
int i1 = 1, i2 = 1000000000; // 0が9個
double d1 = 1, d2 = 999999.999999; // 9が6+6個
printf("i1のサイズ %d, i2のサイズ %d \n",
sizeof(i1), sizeof(i2));
printf("d1のサイズ %d, d2のサイズ %d \n",
sizeof(d1), sizeof(d2));
return 0;
}

上を実行すると
i1のサイズが4、i2が4、
d1のサイズが8、d2が8
になるのですが、なぜそうなるのかわかりません。文字数のサイズかと思ったのですが違うようですし、変数のサイズとはどういうものなんでしょうか?

Re:sizeof演算子について

Posted: 2010年3月28日(日) 13:28
by dic
使用するメモリの容量です
単位はバイトです

Re:sizeof演算子について

Posted: 2010年3月28日(日) 14:17
by box
数値の桁数とは、全く無関係です。

Re:sizeof演算子について

Posted: 2010年3月29日(月) 09:25
by あきら
ありがとうございます。
使用するメモリの容量ということは、型によって事前に決まっているのでしょうか?

Re:sizeof演算子について

Posted: 2010年3月29日(月) 10:10
by tk
> 使用するメモリの容量ということは、型によって事前に決まっているのでしょうか?
型による、メモリ使用量というのは決まっています。

http://www.geocities.jp/ky_webid/c/010.html
ここをみて少し勉強してみてください。

勉強した上で、あらためてsizeofでサイズをはかると理解できるはずです。

Re:sizeof演算子について

Posted: 2010年3月29日(月) 10:44
by あきら
ありがとうございます!
初めて見る内容だったので(省かれていたようです)、これなら理解できそうです。助かりました。
また何かあったらよろしくお願いします。