c中的自引用指针

时间:2018-05-10 13:32:03

标签: c pointers

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

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

EDIT1:

你能解释一下:

  

唯一的自引用指针是void *

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

  

int *p = (int*) &p;

1 个答案:

答案 0 :(得分:2)

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

foo* p;
foo* pp = &p;

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

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