c++ - 为什么链表显示的子函数要特地弄一个变量

浏览:32日期:2023-03-19

问题描述

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是链表的指针

问题解答

回答1:

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

回答2:

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

相关文章: