林小某 发表于 2021-2-11 15:33:13

数据类型问题

int i
i=123
然后sizeof是4
float k
k=3.14
输出sizeof为什么不是5,反而是4呢
123编译后是4个字节,3.14不是编译后应该是5个字节吗

一叶枫残 发表于 2021-2-11 15:41:53

输出的sizeof是对应数据类型int和float的字节大小吧,不关数字的事吧
而int和float的字节大小都是4,怎么会是5?

一叶枫残 发表于 2021-2-11 15:47:17

本帖最后由 一叶枫残 于 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]
查看完整版本: 数据类型问题