i wrote the following program
#include <stdio.h>
main()
{
int i = 2;
float c = 4.5;
printf("%d\n",c);
printf("%f\n",i);
return 0;
}
though i know this is the wrong practice,when i run the program i got the answer as
0
4.500000
but when i exchanged the printf statements a little bit this way
#include <stdio.h>
main()
{
int i = 2;
float c = 4.5;
printf("%f\n",i);
printf("%d\n",c);
return 0;
}
the output was
0.000000
0
i couldn't understand whats happening ,any one pls explain me.
printf doesn't convert it's arguments. It's looking at the memory containing a float and printing it as if it were an integer - it's like taking an MP3 file and asking word to open it as if it were a doc.
A floating point number is stored in a completely different way in memory to an integer - it's not just an integer with some decimal points
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With