Heim  >  Fragen und Antworten  >  Hauptteil

c++ - Warum muss die in der verknüpften Liste angezeigte Unterfunktion eine Variable haben?

void display(link head)
{
    link p;
    p=head;
    if(p==NULL)
    printf("\nlist is empty");
    else do
    {
        printf("%d",p->data);
        p=p->next;
        
    }while(p!=NULL);
 } 

Das Buch sagt, man solle darüber nachdenken, warum man sich auf p konzentrieren sollte, anstatt es direkt zu verwenden.
Link ist der Zeiger der verknüpften Liste

曾经蜡笔没有小新曾经蜡笔没有小新2736 Tage vor603

Antworte allen(2)Ich werde antworten

  • 習慣沉默

    習慣沉默2017-05-16 13:31:38

    head四个字符比p长。
    head意义特指头部节点,而遍历链表时用的指针会指向链表的每一个节点,用head那意义不合适了。

    Antwort
    0
  • 滿天的星座

    滿天的星座2017-05-16 13:31:38

    @任卫 已经说了一种原因,因为我们并不是要用"head"来遍历整个链表。
    除了这个原因,我还能想到一个原因,也就是我们需要保留一份"head"。在这个函数中,我们并不需要再次使用"head",但对于其他一些复杂点的函数,我们可能在遍历完链表后还会想用到"head"。如果我们不用"p"而直接用"head"来遍历链表的话,我们就没法再访问头结点了。因此,我们需要保存一份"head"也就是用p = head,而不是直接用“head”来遍历。

    Antwort
    0
  • StornierenAntwort