I created the following code while playing with pointers -
#include <stdio.h>
int main()
{
    float a=1000;
    int *c=&a;
    float *d=&a;
    printf("\nValue of a is %f",a);
    printf("\nValue of a is %f",*c);
    printf("\nValue of a is %f",*d);
    printf("\nValue of a is %f",*&*c);
    printf("\nValue of a is %f\n",*&*d);
    int b=2000;
    int *e=&b;
    float *f=&b;
    printf("\nValue of b is %d",b);
    printf("\nValue of b is %d",*e);
             printf("\nValue of b is %d",*f);      //Will produce 0 output
             printf("\nValue of b is %d",*&*e);
             printf("\nValue of b is %d\n",*&*f);  //Will produce 0 output
             float g=3000;
             float *h=&g;
             printf("\nValue of g is %f\n",*h);
}
Which has produced the output -
aalpanigrahi@aalpanigrahi-HP-Pavilion-g4-Notebook-PC:~/Desktop/C/Daily programs/pointers$ ./pointer004
Value of a is 1000.000000
Value of a is 1000.000000
Value of a is 1000.000000
Value of a is 1000.000000
Value of a is 1000.000000
Value of b is 2000
Value of b is 2000
Value of b is 0
Value of b is 2000
Value of b is 0
Value of g is 3000.000000
And For the second part where the variable b has been declared as integer and *e and *f are pointers , the value of b is printing out to be 0 in case of *f and *&*f (as shown in the code) but this has worked in the case above that where variable a has been declared as a floating point number.
Why is this happening ??
 
     
     
    