为什么Struct *节点接下来适用于C ++中的链表?

时间:2016-03-06 02:38:04

标签: c++ data-structures linked-list

只是拥有一个不是指针的相同结构的嵌入对象会不一样?

Struct Node
{
int data;
Node next;
};
//vs
Struct Node
{
int data;
Node * next;
};

1 个答案:

答案 0 :(得分:1)

否!

具有以下结构:

struct Node {
    Node other;
};

非法! Node没有定义的大小;编译器无法正确构建它。 Node将包含Node,其中包含Node ..等待什么?

然而,指针很好,它只指向一段内存。定义指针时,它指向的类型不必完整,只需要定义

struct Node;

int main() {
    Node* a; // Fine, no errors.
    Node b; // Incomplete type error
}