为什么编程中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
最佳答案
因为1/2
是0
。另一方面,1.0/2.0
是0.5
。规则是,如果两个操作数都是整数,则除法也是整数。然后它被分配给浮点存储,然后作为浮点打印;但到那时,已经太晚了。
确实与指针无关。
关于c - 通过指针给变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37847597/