第1个回答 2013-08-31
C/C++ 规定 输出输入格式 要与 变量类型 匹配。float 不能 用 %d 格式输出。
不管你 a=10.0, a=20.0 用 %d 输出 就是 0。没什么 道理。
用联合体可以洞悉内存字节里的内容
union U{
float a;
int b;
char c[4];
} u;
main(){
u.a = 10.0; // 用 12.0 20.0 ....
printf("c= %x %x %x %x\n",u.c[0],u.c[1],u.c[2],u.c[3]);
printf("b= 0x%x\n",u.b);
printf("b= %d\n",u.b);
printf("a=%f\n",u.a);
printf("a=%d\n",u.a); // 打印 0本回答被提问者和网友采纳