実装によって型の実際のサイズは異なる場合がありますが、ほとんどの場合、unsigned intやfloatなどの型は常に4バイトです。しかし、なぜ型は常にある値に関係なくメモリの量は?例えば、255の値を持つ次の整数を作成した場合
int myInt = 255;
すると、myInt
私のコンパイラでは 4 バイトを占有します。ただし、実際の値は255
1 バイトでしか表せないので、なぜmyInt
1 バイトのメモリしか占有しないのでしょうか。または、より一般的な質問の仕方をすると、値を表すために必要なスペースがそのサイズよりも小さい可能性があるのに、なぜ型に関連付けられたサイズが 1 つだけなのでしょうか。
ベストアンサー1
型は基本的にストレージを表し、最大現在の値ではなく、保持できる値です。
非常に単純な例えは家です。家は、そこに住む人数に関係なく、大きさが決まっています。また、ある大きさの家に住むことができる最大人数を規定する建築基準法もあります。
しかし、10 人が住める家に 1 人が住んでいる場合でも、現在の居住者数によって家の大きさが変わることはありません。