代码求解
#include <stdio.h>main ()
{
float b={{1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15}},*p;
p=b;
p=*b+4;
printf("%d",*p);
}
这样的一段代码,最后输出的是0,为什么,不应该是5吗 本帖最后由 sunrise085 于 2020-3-17 14:31 编辑
因为你print中用的是%d。这是int类型的格式化符号。
int和float的内存大小不一样,所以会读错.
用union看一下就知道为什么是0 了。
#include <stdio.h>
int main ()
{
union{
float b;
int c;
}aa;
aa.b=5;
printf("%f\n",aa.b);
printf("%x%x",aa.c,aa.c);
return 0;
}
输出结果:
5.000000
40a000000
页:
[1]