Here is some simple C code for a class quiz:
#include
int main() {
float a = 2.3;
printf(\"%d\\n\", a);
return 0;
}
Comp
You try to use %d for float:
d specifier is used for signed decimal integer
f specifier is used for decimal floating point
Using wrong specifier leads to Undefined behavior
You relied on address of an automatic variable:
I try to predict the output by viewing the memory near a
a is an automatic variable, its address changes every time you compile the code, so memory-near-a also changes every time you compile the code.
So, "viewing the memory near a" also causes Undefined behavior.
Solution:
You have nothing to do with Undefined behavior (in this case), so just forget it for saving time, it will make your life easier.