鱼C论坛

 找回密码
 立即注册
查看: 706|回复: 2

[已解决]数据类型问题

[复制链接]
发表于 2021-2-11 15:33:13 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
int i
i=123
然后sizeof是4
float k
k=3.14
输出sizeof为什么不是5,反而是4呢
123编译后是4个字节,3.14不是编译后应该是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也代表一个数字。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-2-11 15:41:53 | 显示全部楼层
输出的sizeof是对应数据类型int和float的字节大小吧,不关数字的事吧
而int和float的字节大小都是4,怎么会是5?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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也代表一个数字。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-13 23:28

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表