我正在写一个链接列表,它可以将不同类型的变量存储在 C. 当我想用下面的代码创建一个浮动数指针时。
int *dval = (int*)30;
float *fvalue = (float*)4.55;
编译器显示错误,
error: cannot convert to a pointer type
float *fvalue = (float*)4.55;
^~~~~
我的问题是,为什么第一条语句的类型转换为 整数 指针是对的,但第二个指针到了 漂浮 数字指针是错误的?又该如何创建浮动数字指针?
你的代码并没有按照你的想法去做。第一行
int *dval = (int*)30;
是把'30'当作一个内存地址。结果是'dval'指向存储在该地址的任何东西。
第二行
float *fvalue = (float*)4.55;
试图做同样的事情,但'4.55'不是一个有效的内存地址。
如果你想在你的指针中存储实际的值,你需要做一些事情,如
float float_val = 4.55;
float *fp = &float_val;