typedef int ElemType;
typedef struct Node
{
ElemType data;
struct Node *next;
}Node;
typedef struct Node *LinkList;
typedef int ElemType;
typedef struct Node
{
ElemType data;
struct Node *next;
}Node;
typedef struct Node *LinkList;
3 回答2k 阅读✓ 已解决
2 回答3.9k 阅读✓ 已解决
1 回答3.3k 阅读
1 回答2.1k 阅读
1.1k 阅读
1 回答512 阅读
不知道你的疑惑是不是 为什么在Node还没有定义完的情况下我们就能用Node *next作为它的元素?
如果你是问这个的话,我倒是可以说说我的看法。因为c语言中指针都是占32bit或者64bit的数据,在同一个系统中,指针占用的内存空间都是一样的。所以在编译阶段,
和
是等效的,
struct Node *next;
和xxx *next;
都是一个占32bit或者64bit的数据类型。只有在后面使用Node后,struct Node *next;
和xxx *next;
才会有区别。你可以试试这样,
就是next不是指针,而就是Node。这就会报错
因为这个时候Node并没有定义完,编译器都不知道要给他分配多少内存空间。
如果你想问的不是这个,那就忽略我的回答吧。