关于C语言数据结构单链表初始化的问题
这是我在书上看到的例子:typedef struct
{
DateType date;
struct Node *next;
}*Linklist;
void InitList(LinkList *head)
/*将单链表初始化为空。动态生成一个头结点,并将头结点的指针域置为空。*/
{
if((*head=(LinkList)malloc(sizeof(ListNode)))==NULL) /*为头结点分配一个存储空间*/
exit(-1);
(*head)->next=NULL; /*将单链表的头结点指针域置为空*/
}
我不明白这里为什么要用二级指针LinkList *head.
这样不可以吗?
void InitList(LinkList head)
/*将单链表初始化为空。动态生成一个头结点,并将头结点的指针域置为空。*/
{
if((head=(LinkList)malloc(sizeof(ListNode)))==NULL) /*为头结点分配一个存储空间*/
exit(-1);
head->next=NULL; /*将单链表的头结点指针域置为空*/
}
教材说”因为单链表操作用需要修改头指针,所以要用二级指针初始化“。我还不明白这句话。
求高手指点。最好能像未命名的图片一样描述一下,之后发送到我的邮箱s461934079@
拜托了,我想了好久都不明白这个问题
未命名.zip
(3.36 KB)
[ 本帖最后由 EricZhan 于 2010-8-20 08:43 编辑 ]