数据类型那节课课上代码的改版,该代码可以运行,但是结果不一样(附图
#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;
} 图放不了,放结果
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
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 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
这是修改过的代码,求出的结果是一样的
本帖最后由 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;
} 我主要的问题在k作为单精度浮点型变量,为什么k的字节是8不应该是4吗
j作为字符型变量,但是为啥字节大小不是1 j作为字符型变量,但是为啥字节大小不是1
我vs输出是1
#define k 3.14
为啥你认为 k是单精度浮点型变量 jhq999 发表于 2021-9-25 12:46
j作为字符型变量,但是为啥字节大小不是1
我vs输出是1
#define k 3.14
我这用的dev运行的
k是3.14,小数点后的数字太少,所以不是应该是单精度吗
区分单精度和双精度的标准不是小数点后数字多少吗
这个结果是代表我认为的单精度和双精度概念错误,还是因为我没有将k定义为float,所以系统自动帮我判断为双精度浮点型了吗 bild 发表于 2021-9-25 13:28
我这用的dev运行的
k是3.14,小数点后的数字太少,所以不是应该是单精度吗
区分单精度和双精度的标准不 ...
不同编译器可能都不一样
页:
[1]