链表初级知识求助

请问 struct Node *next;这一句是啥意思?我知道这句是定义链表节点的指针域,但为什么用这种来定定义,结构体不可以把自己当作成员呀,向大家请教一下

typedef struct Node
{
    int data;
    struct Node *next;
}Node;
Comments
登录后评论
Sign In
·

你说得对,“结构体不可以把自己当作成员”没有问题,不然就递归定义了,但这里是指针呀

·

当程序运行起来时,会调用一次初始化链表的函数,这个时候会把next指针指向NULL,当你插入数据时,会调用一个插入数据的函数,这个函数里面有一个malloc函数,会从内存中申请一个struct Node类型的空间,然后会把当前指针指向的结点的next指针,指向刚刚从内存中申请出来的空间,然后把要插入的数据插入到新结点的data里面,最后把新的结点的next指针指向NULL