char
增量为1个字节。 int
是2字节增量。 float
是4字节增量。 double
是8字节增量。为什么int在这里增加 4字节?
答案 0 :(得分:3)
试试这个:
int i;
...
printf("%d",sizeof(i));
你得到了什么?最有可能4.为什么?因为你的CPU很可能是32位的。在较旧的CPU上,2字节的int是真的......
永远不要假设基于“应该”的变量大小,总是使用sizeof()!
答案 1 :(得分:0)
int
是32位,float
也是。这里,double
是64位。
在许多16位系统上,int
是16位。 C int
的目的是为它编译的系统最自然的大小。不要求int
跨系统的大小相同。