1 c
我想知道为什么这个程序的输出是0.0000:
{
int a = 65;
char c = (char)a;
int m = 3.0/2;
printf("%f\n", 5 / 2);
return (0);
}
Run Code Online (Sandbox Code Playgroud)
5 / 2是整数除法,产生一个int结果.但是,"%f"printf标志将其解释为double值,这将导致未定义的行为.
在你的情况下,它打印0.0000,但它可能是任何东西,真的.
使用浮点操作数以获得浮点返回值.
printf("%f\n", 5.0 / 2.0);
Run Code Online (Sandbox Code Playgroud)