为什么printf(“%f”,0);给出未定义的行为?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么printf(“%f”,0);给出未定义的行为?相关的知识,希望对你有一定的参考价值。
该声明
printf("%f
",0.0f);
打印0。
但是,声明
printf("%f
",0);
打印随机值。
我意识到我表现出某种未定义的行为,但我无法弄明白为什么具体。
所有位都为0的浮点值仍然是值为0的有效float
。
float
和int
在我的机器上大小相同(如果这甚至是相关的)。
为什么在printf
中使用整数文字而不是浮点文字导致此行为?
附:如果我使用,可以看到相同的行为
int i = 0;
printf("%f
", i);
以上是关于为什么printf(“%f”,0);给出未定义的行为?的主要内容,如果未能解决你的问题,请参考以下文章