struct node * head = NULL初始化是什么意思?

时间:2014-05-26 22:14:39

标签: linked-list

我是链接列表的新手。 在创建链表时,我们首先编写struct node * head = NULL; 这意味着什么?

4 个答案:

答案 0 :(得分:0)

无论何时创建链表,我们都必须对其进行初始化,因为它在开始时没有任何节点(开头的空链表),start / head指向null。那是* head = NULL的含义。

答案 1 :(得分:0)

对于初学者,初始化者很难阅读。最好的是恕我直言,将它们作为宣言和作业的组合阅读:

struct node *p = NULL;

相当于:

struct node *p;
p = NULL;

请注意,初始化器应用于指针(p 指针),而不是指向它的位置。 (它指向无处,因为它是NULL)

答案 2 :(得分:0)

最初它包含一些垃圾值 。因此,为了创建链接列表(单个),您需要将其初始化为 NULL 。因此,更容易创建第一个节点(通过检查条件head == NULL),这是真的,因此创建了第一个节点。现在,我们可以通过遍历到最后添加新节点来将新节点添加到现有链接列表中。 因此,如果尚未将头指针初始化为 NULL ,则无法创建链接列表。

if(head==NULL)
    {
    newnode->next=NULL;             
    head=newnode; 
    }
    else
    {
        ptr=head;
        while(ptr->next!=NULL)
        {
            ptr=ptr->next;
        }
        ptr->next=newnode;
        newnode->next=NULL;
    }

答案 3 :(得分:0)

零是无效地址。指针变量等于null且地址为null意味着指针变量变量未指向有效的内存位置。