在C中将int转换为float

时间:2017-04-08 20:20:59

标签: c pointers type-conversion int

我无法将float转换为float *six(const int *x) { float *p = malloc(sizeof(x)); p = (float *)x; return p; } int main() { float *p_six; int i4 = 4, i432 = 432; p_six = six(&i4); printf("%d == %f\n", i4, *p_six); free(p_six); } 。我试图键入转换但它似乎不起作用。我做错了什么?

main

1 个答案:

答案 0 :(得分:3)

您无法将float *指向int并期望它被正确解释。它们有不同的表示形式,所以你最终会得到垃圾。

您只需将int值分配给float即可转换。

int main()
{
    float f;
    int i = 4;

    f = i;
    printf("%d == %f\n", i, f);
    return 0;
}

输出:

4 == 4.000000