数据类型问题
int ii=123
然后sizeof是4
float k
k=3.14
输出sizeof为什么不是5,反而是4呢
123编译后是4个字节,3.14不是编译后应该是5个字节吗 输出的sizeof是对应数据类型int和float的字节大小吧,不关数字的事吧
而int和float的字节大小都是4,怎么会是5? 本帖最后由 一叶枫残 于 2021-2-11 15:56 编辑
#include<stdio.h>
int main()
{
double d;
float f;
int i;
printf("int类型:%d\n",sizeof(i));
printf("float类型:%d\n",sizeof(f));
printf("double类型:%d\n",sizeof(d));
printf("数字123:%d\n",sizeof(123));
printf("数字3.14:%d\n",sizeof(3.14));
return 0;
}
int类型:4
float类型:4
double类型:8
数字123:4
数字3.14:8
如果直接对数字进行sizeof,整数一般都是int类型的字节大小,有小数一般都是double的字节大小
你应该是没理解字节的概念
1字节对应着8位(二进制数),每个位置可以放0,1两个数,这样8个位置有2的8次方结果,也就是256种结果,表示256种数字,然后int就是2的31次方(4*8=32,正数区域,因为有一位代表正负,所以32-1=31),于是int代表的范围就是-2^31~(2^31)-1,这里的-1是因为还有个0也代表一个数字。
页:
[1]