c - 通过指针给变量赋值

标签 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

最佳答案

因为1/20。另一方面,1.0/2.00.5。规则是,如果两个操作数都是整数,则除法也是整数。然后它被分配给浮点存储,然后作为浮点打印;但到那时,已经太晚了。

确实与指针无关。

关于c - 通过指针给变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37847597/

相关文章:

c - C中的三维字符数组

c++ - 指向类的指针会增加模块化吗?

c++ - 什么时候应该在 C++ 中使用引用?

c - 如何检测预处理器中的 X32 ABI 或环境?

c++ - 使用 C 或 C++ 检查互联网连接的最快方法是什么?

c - Dbus mainloop.h 缺失错误

c - 按字节打印 double 值会反转实际值

c++ - 指向虚类的指针

c - 查找 int 数组 C 中的所有回文

c# - 安全比较与不安全,byte[]