该声明
printf("%f\n",0.0f);
打印0。
但是,声明
printf("%f\n",0);
打印随机值。
我意识到我表现出某种未定义的行为,但我无法弄明白为什么具体。
所有位都为0的浮点值仍然是值为0的有效float
。
float
和int
在我的机器上大小相同(如果这甚至是相关的)。
为什么在printf
中使用整数文字而不是浮点文字导致此行为?
附:如果我使用,可以看到相同的行为
int i = 0;
printf("%f\n", i);