我理解sizeof用字节来表示我的对象的大小。我写了以下内容:
int a = 8;
float size = sizeof a;
printf("%f\n", size);
输出为4.000000。不应该返回.5?我的理解是一个字节包含8位,为了存储数字8,我需要4位。
答案 0 :(得分:3)
整数变量的大小是固定的;它不会随着它所持有的值的大小而变化。在您的情况下,您使用的是32位字节可寻址机器,因此在该机器上sizeof(int)总是32位,也就是4个字节。
答案 1 :(得分:2)
变量a
是一个整数(int
),整数占用4个字节(无论存储在哪个值中)。
仅仅因为特定值可以用更少的位表示,它不会改变变量的大小。
答案 2 :(得分:1)
sizeof
运算符对数据类型进行操作,而不是对变量 value 进行操作。
仅供参考,sizeof(int)
也完全有效。
答案 3 :(得分:0)