搜尋

首頁  >  問答  >  主體

c++ - 為什麼鍊錶顯示的子函式要特地弄一個變數

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);
 } 

書上說思考為什麼要把head設定成p而不是直接用我沒看出來為什麼 為什麼啊?
link是鍊錶的指標

曾经蜡笔没有小新曾经蜡笔没有小新2776 天前634

全部回覆(2)我來回復

  • 習慣沉默

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

    head四個字元比p長。
    head意義特指頭部節點,而遍歷鍊錶時用的指標會指向鍊錶的每一個節點,用head那意義不合適了。

    回覆
    0
  • 滿天的星座

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

    @任衛 已經說了一個原因,因為我們並不是要用"head"來遍歷整個鍊錶。
    除了這個原因,我還能想到一個原因,也就是我們需要保留一份"head"。在這個函數中,我們並不需要再次使用"head",但對於其他一些複雜點的函數,我們可能在遍歷完鍊錶後還會想用到"head"。如果我們不用"p"而直接用"head"來遍歷鍊錶的話,我們就沒辦法再訪問頭結點了。因此,我們需要保存一份"head"也就是用p = head,而不是直接用「head」來遍歷。

    回覆
    0
  • 取消回覆