+ 7
Explain the output. .....?
#include <stdio.h> int main() { float x=0.1; printf("%d%d%d",sizeof(x),sizeof(0.1),sizeof(0.1f)); return 0; }
1 Réponse
+ 2
First note: with the current version of SoloLearn compiler, your code does not compile, because sizeof() returns 8 bytes, but %d expects 4 bytes. So replace "%d%d%d" with "%ul%ul%ul"
,
Second note: the size of a float is 4, the size of a double is 8
Said that, the result is 484 because x is declared float (assignment with a double is automatically casted to float); 0.1 is a constant double; 0.1f is a constant float