这两行代码有什么区别呢?
int *ptr = &x;
and
void* q = &x;
int* p = q;
我对 C 和指针的概念非常陌生 - 主要是在 Java 中教授的 - 所以有点困惑。
提前致谢。
void *
用于表示 C 中的通用指针。
这意味着它可以指向任何类型。
所以在第一种情况下int *ptr = &x;
你使用一个指向int
所以任何使用它的人都知道它正在操作一个整数。
在第二种情况下void* q = &x;
您通过通用指针指向整数地址。
问题是不清楚这个指针指的是什么类型。
因此,第一个和第二个示例具有相同的效果(在您的具体示例中),但是void *
这样使用并不安全。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)