c - c中的自引用指针

标签 c pointers

<分区>

有人可以阐明自引用指针。自引用数据类型是包含指针或对其自身类型的引用的类型,但我想了解自引用指针。你能用一些代码解释这个术语吗?

了解更多相关信息的任何链接/资源也将非常有帮助。

编辑1:

你能解释一下吗:

The only self-referential pointer would be a void *

还有这段代码让我更加困惑:

int *p = (int*) &p;

最佳答案

除了 void*,C 中没有自引用指针这样的东西。那是因为,如果你要写

foo* p;
foo* pp = &p;

其中pp是一个自引用指针,类型不兼容,所以编译会失败。唯一可以通过编译的类型是 foovoid 的情况,这是因为您可以将 void** 指针转换为一个 void* 指针。

实际上,您的意思是自引用类型,例如在实现链表时可以找到。

关于c - c中的自引用指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50274142/

相关文章:

php - 无法在 PHP 扩展中编译虚拟文件

c++ - LLVM 别名分析器奇怪的结果

c - 如何更改传递给 C 函数的实际参数?

c++ - 将基类指针转换为子类指针 - C++

c# - 用指针c#指向某个地址

c - 在 C 中使用 fwrite 时文件大小限制为 2GB?

c - 在 C 文件中写入和打印数组中的字符串

c - 在 C 中访问 Gmail

c - 为什么char指针签名后可以增值?

c - 类型 "char *"和类型 "char[10]"之间的区别