C++ 为什么Struct*节点接下来在C++;?

C++ 为什么Struct*节点接下来在C++;?,c++,data-structures,linked-list,C++,Data Structures,Linked List,如果只是有一个结构相同的嵌入对象,而不是指针,那不是一样的吗 Struct Node { int data; Node next; }; //vs Struct Node { int data; Node * next; }; 不 具有以下结构: struct Node { Node other; }; 这是违法的节点没有定义的大小;编译器无法正确生成它。节点将包含一个节点,该节点将包含一个节点。。等等什么 不过,指针很好,它只指向内存的一部分。定义指针时,指针指向的类型不必完整,只

如果只是有一个结构相同的嵌入对象,而不是指针,那不是一样的吗

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

具有以下结构:

struct Node {
    Node other;
};
这是违法的<代码>节点没有定义的大小;编译器无法正确生成它。
节点
将包含一个
节点
,该节点将包含一个
节点
。。等等什么

不过,指针很好,它只指向内存的一部分。定义指针时,指针指向的类型不必完整,只需定义即可


你是从Python还是java来C++的?如果你有房子,你能在房子里嵌入另一个类似的房子吗?没有。但是你可以在那所房子里留张便条,上面写着另一所房子的地址。@nos:很好的例子,我喜欢它
struct Node;

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