鱼C论坛

 找回密码
 立即注册
查看: 1412|回复: 8

数据类型那节课课上代码的改版,该代码可以运行,但是结果不一样(附图

[复制链接]
发表于 2021-9-24 17:20:11 | 显示全部楼层 |阅读模式

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

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

x
#include <stdio.h>

#define i 123
#define j 'c'
#define k 3.14

int main()
{
        printf("size of int is %d\n",sizeof(int));
        printf("size of i is %d\n",sizeof(i));
        printf("size of char is %d\n",sizeof(j));
        printf("size of j is %d\n",sizeof(float));
        printf("size of k is %d\n",sizeof k);
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

 楼主| 发表于 2021-9-24 17:22:20 | 显示全部楼层
图放不了,放结果
size of int is 4
size of i is 4
size of char is 4
size of j is 4
size of k is 8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-24 20:35:32 | 显示全部楼层
size of int is 4
size of i is 4
size of char is 1
size of j is 4
size of k is 8
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-25 11:19:34 | 显示全部楼层
jhq999 发表于 2021-9-24 20:35
size of int is 4
size of i is 4
size of char is 1

我主要的问题在k作为单精度浮点型变量,为什么k的字节是8不应该是4吗
j作为字符型变量,但是为啥字节大小不是1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-25 11:25:25 | 显示全部楼层

这是修改过的代码,求出的结果是一样的

本帖最后由 bild 于 2021-9-25 11:28 编辑
#include <stdio.h>

#define i 123//对ijk使用宏定义 
#define j 'c'
#define k 3.14

int main()
{
        printf("size of int is %d\n",sizeof(int));//计算int的字节大小 
        printf("size of i is %d\n",sizeof(i));//计算i的字节大小 
        printf("size of char is %d\n",sizeof(char));//计算字符型变量的字节大小 
        printf("size of j is %d\n",sizeof(j));//计算j的字节大小 
        printf("size of float is %d\n",sizeof(float));//计算单精度浮点型变量的大小 
        printf("size of k is %d\n",sizeof k);//计算k的变量大小 
        return 0;
}
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-25 11:26:43 | 显示全部楼层
我主要的问题在k作为单精度浮点型变量,为什么k的字节是8不应该是4吗
j作为字符型变量,但是为啥字节大小不是1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-25 12:46:49 | 显示全部楼层
j作为字符型变量,但是为啥字节大小不是1
我vs输出是1
#define k 3.14
为啥你认为 k是单精度浮点型变量
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2021-9-25 13:28:40 | 显示全部楼层
jhq999 发表于 2021-9-25 12:46
j作为字符型变量,但是为啥字节大小不是1
我vs输出是1
#define k 3.14

我这用的dev运行的
k是3.14,小数点后的数字太少,所以不是应该是单精度吗
区分单精度和双精度的标准不是小数点后数字多少吗
这个结果是代表我认为的单精度和双精度概念错误,还是因为我没有将k定义为float,所以系统自动帮我判断为双精度浮点型了吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-9-25 13:50:14 | 显示全部楼层
bild 发表于 2021-9-25 13:28
我这用的dev运行的
k是3.14,小数点后的数字太少,所以不是应该是单精度吗
区分单精度和双精度的标准不 ...

不同编译器可能都不一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-15 23:02

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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