课程
/后端开发
/C
/C语言入门
和题目一样
2015-08-28
源自:C语言入门 2-9
正在回答
没有强制转换的时候将输出语句printf内的%d改为%f就会输出2.5,如果不改直接用%d输出,那么C语言中无法识别只定义的浮点型而调用的整型,导致出现乱码,随机输出一个数
浮点数在储存时通常遵循IEEE754标准,即将整数部分和指数部分分别存入不同的位中。不过不同平台会有不同的实现,不一定都遵循IEEE标准。
printf会将后面的相应参数按照第一个参数中格式化指示符进行解释,这样浮点数的二进制表示如果当成是整型的话,就会出现类似“乱码”的输出。具体输出多少跟你的平台实现有关,在我的64位机器上用gcc编译,打印出的是0。
我是说不是没有强制转换的时候的输出结果为什么是-1248013944
KingMisy
你那个双精度如果想转成整数输出,就得利用强制转换,在printf中的num前加(int),成(int)num。
举报
C语言入门视频教程,带你进入编程世界的必修课-C语言
2 回答为什么输出结果是这样的
2 回答为什么输出结果是这个?
1 回答这样输出结果为什么是0???
4 回答这输出出来是什么原理?
2 回答为什么输出结果是4.000000