通过指针分配变量的值

时间:2016-06-15 23:45:15

标签: c pointers

为什么编程中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

2 个答案:

答案 0 :(得分:2)

因为1/20。另一方面,1.0/2.00.5。规则是,如果两个操作数都是整数,则除法也是积分。然后将其分配到浮动存储器,然后作为浮动打印;但到那时,为时已晚。

与指针无关,真的。

答案 1 :(得分:1)

因为你要划分两个整数。

1/2;

1/2的结果是整数结果,为零。要纠正这个:

1.0 / 2.0;

这将返回浮点结果。