I am trying to understand the pointer concepts in-depth. In the following code,
#include <stdio.h>
int main()
{
int i = 10;
int *iptr = &i;
printf("(float)* : %f\n", (float)*iptr);
printf("(float*) : %f\n", (float*)iptr);
printf("*(float*) : %f\n", *(float*)iptr);
return 0;
}
output:
(float)* : 10.000000
(float*) : 10.000000
*(float*) : 0.000000
I also got a warning for the type-cast (float*)
.
I find it difficult to even analyse the difference. If anyone can help me to analyse what is the exact usage of all three, it would be helpful.