这可能是一个“noob-ish”问题,但我在互联网上搜索并找不到答案。我知道在C中,每种类型的变量都有不同的大小:
char : 1 byte
short : 2 bytes
int : 4 bytes
long : 4 bytes
float : 4 bytes
double : 8 bytes
但是,比方说,我声明了一个tpye float的变量a
和一个float类型的变量b
。现在让我们说变量a
得到一个浮点数,例如130.25和b
得到5.5。现在,考虑到浮点数是4个字节长,一旦我将它们各自的值关联起来,肯定a
和b
的大小不一样。那是对的吗?或者是相同大小的变量,无论它们与它们相关的值是什么?
答案 0 :(得分:4)
变量的大小取决于其类型,而不取决于其值。
两个float
变量的大小始终相同,无论存储在哪个值中。
请注意,您可以执行以下操作:
float a;
float b;
if(sizeof a == sizeof b)
printf("a and b have the same size\n");
如上所示,即使变量的值未定义,上述内容仍然有效。这是因为sizeof
可以在编译时进行评估,因此根本不依赖于实际值。这是另一个证明该值不会影响变量大小的证明。