【发布时间】:2020-07-30 12:24:24
【问题描述】:
# include <stdio.h>
int main()
{
float i = 10, *j;
void *k;
k = &i;
j = k;
printf("%f", *j);
return 0;
}
上面给出了 GCC 编译器中的输出 10.000000。
我的疑问是,我们应该将表达式j = k 写成j = (float *)k,对吗?
【问题讨论】:
-
在 C 中,所有指针都可以隐式转换为 和来自
void *。这就是为什么使用像mallocwithout casting 这样的函数有效的原因。
标签: c pointers void-pointers