是否可以指向另一个节点中的节点:
struct Node{
Node my_Node;
Node *next;
};
int main(){
Node *practice = new Node;
practice -> next = &(practice -> my_Node);
return 0;
}
答案 0 :(得分:1)
struct Node{
Node my_Node; // this is not allowed
Node *next;
};
因为在c或c ++中不允许创建不完整类型的变量。因为在那时编译器不知道Node
类型是什么以及需要多少空间?
答案 1 :(得分:1)
您无法在Node
内声明Node
,首先它是不完整类型,其次需要无限空间才能允许{<1>}因为节点必须包含一个必须包含节点等的节点...... )这是不可能的。另一方面,您可以Node *
内有Node
。