i wrote the following program
#include
main()
{
int i = 2;
float c = 4.5;
printf(\"%d\\n\",c);
printf(\"%f\\n\",i);
return 0;
}
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