当我运行此代码时,它会打印第一个 printf 中 a 的地址,以及第二个 printf 中 a 的值。
#include <stdio.h>
int main()
{
float a=7.999999;
float *b,*c;
b=&a;
c=b;
printf ( "\n%u %u %u", &a, b, c );
printf ("\n%f %f %f %f",a,*( &a ),*b,*c );
}
Run Code Online (Sandbox Code Playgroud)
但是当我像这样在第二个 printf 中将 %f 更改为 %d 时。
#include <stdio.h>
int main()
{
float a=7.999999;
float *b,*c;
b=&a;
c=b;
printf ( "\n%u %u %u", &a, b, c );
printf ("\n%d %d %d %d",a,*( &a ),*b,*c );
}
Run Code Online (Sandbox Code Playgroud)
它在第二个 printf 中打印随机值,请解释原因。浮点指针应该使用 %f 打印,但为什么不能使用 %d …