main()
{
printf("%f",1);
}
我期望的输出是1.000000
,即int 1被向上转换为1.000000 的两倍,但它给出了0.000000
。为什么会这样?
main()
{
printf("%f",1);
}
我期望的输出是1.000000
,即int 1被向上转换为1.000000 的两倍,但它给出了0.000000
。为什么会这样?
当为格式化指令(在本例int
中为 a %f
)提供不匹配的参数时,结果行为是undefined。
这个问题或它的一些变体会定期出现,请参阅 将 int 打印为浮点数时 printf 的行为是什么?printf函数有问题吗?示例/更多信息。