C语言:
为什么打印的是0?
不应该打印1091567616吗
打印成0的原理是什么呢?
这么解决呢?
解决的原理又是什么呢?
求解答!
C语言:
为什么打印的是0?
不应该打印1091567616吗
打印成0的原理是什么呢?
这么解决呢?
解决的原理又是什么呢?
求解答!
参数传递的时候,float类型会被转成double传入printf里面所以传入的其实是0x4022000000000000,然后%d截取到低32位,所以就成了0
如果你想这样做的话可以通过地址来避免
#include<stdio.h>
int main()
{
float a = 9.0;
printf("%d",*(int*)(&a));
}