C语言中整型变量用实型输出以及实型变量用整型输出结果会怎么样?

2025-02-25 02:27:48
推荐回答(2个)
回答1:

你这里首先一个严重问题就是不管什么环境下变长参数接受float和int的长度都不一样

你这里看上去是16位的,int是2字节 float是4字节

第一个printf 除格式需要6字节的参数你只提供了4字节,%f的高2字节是不缺定的值,所以打印出来的float也是不确定的(当然你每次执行这个程序可能会一样,但是改一下调用顺序就不行了)

第二个要求6个字节你给了8个字节,另外第二个printf没理由是0... 16位下应该是39322

回答2:

囧,,好吧
int 存放是二进制
但是浮点数的存放中有一部分二进制位代表的是2的几次方

float用科学计数法
1bit符号 + 8bits指数 + 23位有效数字

int
sigma(bit[i]*2^i)

存储格式不一样
所以一样的二进制数代表的数值不一样

ps

楼上,32位机明显int float一样长,
又是读谭浩强读出来的吧= =b