【发布时间】:2018-05-10 13:32:02
【问题描述】:
有人可以解释一下自引用指针。自引用数据类型是包含指针或引用它们自己的类型的类型,但我想知道自引用指针。你能用一些代码解释这个术语吗?
任何了解更多相关信息的链接/资源也将非常有帮助。
编辑1:
你能解释一下吗:
唯一的自引用指针是
void *
还有这段代码更让我困惑:
int *p = (int*) &p;
【问题讨论】:
-
您需要更具体地说明您的要求。做
void* p = &p是微不足道的,但我假设你在问一些更复杂(而且没用)的东西。 -
您似乎指的是您在某处读过或听过的术语(“自引用指针”)。您能否参考该来源以提供一些背景信息?
-
@rimiro 您链接的问题似乎很好地解释了它。您对它的具体有什么理解困难?
-
在
int *p = (int *) &p;中,强制转换是必要的,因为&p的类型int **与int *不兼容,但是强制转换告诉编译器“我知道我是什么正在做”。void *p; p = &p;示例还具有类型转换功能,但任何数据指针类型都可以在不进行强制转换的情况下转换为void *。&p的类型是void **,但是C允许隐式转换为void *。