c中的sizeof返回类型

时间:2015-03-09 20:36:27

标签: c

我理解sizeof用字节来表示我的对象的大小。我写了以下内容:

int a = 8; 
float size = sizeof a; 
printf("%f\n", size);

输出为4.000000。不应该返回.5?我的理解是一个字节包含8位,为了存储数字8,我需要4位。

4 个答案:

答案 0 :(得分:3)

整数变量的大小是固定的;它不会随着它所持有的值的大小而变化。在您的情况下,您使用的是32位字节可寻址机器,因此在该机器上sizeof(int)总是32位,也就是4个字节。

答案 1 :(得分:2)

变量a是一个整数(int),整数占用4个字节(无论存储在哪个值中)。

仅仅因为特定值可以用更少的位表示,它不会改变变量的大小。

答案 2 :(得分:1)

sizeof运算符对数据类型进行操作,而不是对变量 value 进行操作。

仅供参考,sizeof(int)也完全有效。

答案 3 :(得分:0)

系统上的默认int大小似乎是32位。无论您的号码需要表示多少位数。

包含一些默认变量大小的链接:

http://developer.mbed.org/handbook/C-Data-Types

相关问题