Maison  >  Questions et réponses  >  le corps du texte

c++ - Pourquoi les sous-fonctions affichées dans la liste chaînée doivent-elles avoir une variable?

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

Le livre dit de réfléchir aux raisons pour lesquelles vous devriez vous diriger vers p au lieu de l'utiliser directement. Je ne vois pas pourquoi ?
link est le pointeur de la liste chaînée

曾经蜡笔没有小新曾经蜡笔没有小新2736 Il y a quelques jours604

répondre à tous(2)je répondrai

  • 習慣沉默

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

    head fait quatre caractères de plus que p.
    La signification de head fait spécifiquement référence au nœud principal, et le pointeur utilisé lors du parcours de la liste chaînée pointera vers chaque nœud de la liste chaînée. La signification de l'utilisation de head est inappropriée.

    répondre
    0
  • 滿天的星座

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

    @仁伟 a déjà mentionné une raison, car nous ne voulons pas utiliser "head" pour parcourir toute la liste chaînée.
    En plus de cette raison, je peux aussi penser à une autre raison, c'est-à-dire que nous devons conserver une copie de "head". Dans cette fonction, nous n'avons pas besoin d'utiliser à nouveau « head », mais pour certaines autres fonctions complexes, nous souhaiterons peut-être utiliser « head » après avoir parcouru la liste chaînée. Si nous parcourons la liste chaînée directement en utilisant "head" au lieu de "p", nous ne pourrons plus accéder au nœud principal. Par conséquent, nous devons enregistrer une copie de "head", qui doit utiliser p = head, au lieu d'utiliser directement "head" pour parcourir.

    répondre
    0
  • Annulerrépondre