Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

problem with printf function?

Tags:

c

casting

printf

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.

like image 250
raghu Avatar asked Mar 09 '26 08:03

raghu


1 Answers

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

like image 65
Martin Beckett Avatar answered Mar 11 '26 02:03

Martin Beckett



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!