【发布时间】:2015-02-17 01:23:22
【问题描述】:
我有这个代码:
#include <stdio.h>
int main()
{
int i = 12345;
printf("%f", i);
return 0;
}
printf() 将输出 0.000000,printf() 不应该将 i 中包含的位解释为浮点数吗?
【问题讨论】:
-
那么 printf 不应该要求 %f, %i,不是吗?
-
在非技术语言中,你说的是
give me an egg,而你期望得到chicken soup。 :-)%f是浮点数,%i是整数。提供的变量没有自动类型检查。 -
启用编译器中的所有警告。如果使用
gcc -Wall -Wextra -g,您会收到最近的GCC 警告 -
如果您希望将整数解释为浮点数,则需要对其进行转换(或者更确切地说,转换指针);在这种情况下,所有赌注都被取消。