在定义结构之前如何使用指向结构的指针?

Sur*_*tel 3 c c++ memory struct memory-management

我很难理解这段代码是如何工作的.我总是在使用指向结构的指针之前想到它应该被定义.在下面的例子中为什么编译器不抱怨struct LL*Next?

typedef struct LL
{
    int value;
    **struct LL* Next;**
}Node;

Node* temp;
Run Code Online (Sandbox Code Playgroud)

Sou*_*osh 5

在你的代码中,

 struct LL* Next;
Run Code Online (Sandbox Code Playgroud)

允许作为struct LL定义本身内的成员,并且不会抛出任何错误,因为在那时,编译器不需要知道结构本身的定义.它只需要分配一个指向结构的指针,因此它可以.

稍后,在使用struct类型的变量时,您必须为指针对象分配内存,并在进一步使用之前将该内存分配给指针.