类型转换为Float的指针。

问题描述 投票:0回答:1

我正在写一个链接列表,它可以将不同类型的变量存储在 C. 当我想用下面的代码创建一个浮动数指针时。

int *dval = (int*)30;
float *fvalue = (float*)4.55;

编译器显示错误,

error: cannot convert to a pointer type  
float *fvalue = (float*)4.55;  
^~~~~

我的问题是,为什么第一条语句的类型转换为 整数 指针是对的,但第二个指针到了 漂浮 数字指针是错误的?又该如何创建浮动数字指针?

c pointers
1个回答
2
投票

你的代码并没有按照你的想法去做。第一行

int *dval = (int*)30;

是把'30'当作一个内存地址。结果是'dval'指向存储在该地址的任何东西。

第二行

float *fvalue = (float*)4.55;

试图做同样的事情,但'4.55'不是一个有效的内存地址。

如果你想在你的指针中存储实际的值,你需要做一些事情,如

float float_val = 4.55;
float *fp = &float_val;
© www.soinside.com 2019 - 2024. All rights reserved.