为什么编程中x的输出是0而不是1/2?
#include <stdio.h>
#include <stdlib.h>
int main()
{
double *xp,x;
xp = &x;
*xp = 1/2;
printf("%f\n",x);
return 0;
}
给出结果
0.000000
答案 0 :(得分:2)
因为1/2
是0
。另一方面,1.0/2.0
是0.5
。规则是,如果两个操作数都是整数,则除法也是积分。然后将其分配到浮动存储器,然后作为浮动打印;但到那时,为时已晚。
与指针无关,真的。
答案 1 :(得分:1)
因为你要划分两个整数。
1/2;
1/2的结果是整数结果,为零。要纠正这个:
1.0 / 2.0;
这将返回浮点结果。