When i run this code it prints address of a in 1st printf, and value of a in 2nd printf.
#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 );
}
But When i change %f to %d in 2nd printf like this.
#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 );
}
it prints random values in 2nd printf please explain why. float pointer should be printed using %f but why can't by using %d.