Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C/C++ - Dubbio sul passaggio dei parametri per l'inserimento e la stampa di liste concatenate
Forum - C/C++ - Dubbio sul passaggio dei parametri per l'inserimento e la stampa di liste concatenate

Avatar
gcali (Normal User)
Newbie


Messaggi: 12
Iscritto: 23/03/2014

Segnala al moderatore
Postato alle 0:35
Martedì, 13/05/2014
In questa funzione il parametro passato è un puntatore ad una struct Elem definita Elem con typedef. Il mio dubbio è: passando a printL l'indirizzo della struttura e modificandone il riferimento con start = start->next all'interno della funzione, perché start rimane invariato dopo il return?

Codice sorgente - presumibilmente C/C++

  1. void printL(Elem * start)
  2. {
  3.  
  4.    while(start != NULL)
  5.    {
  6.       printf(" * %d\n", start->data);
  7.       start = start->next;
  8.    }
  9.  
  10.    return;
  11. }



Non è tutto, alla funzione di inserimento l'esempio del mio manuale passa un doppio puntatore, dunque mi sorge una domanda: sta passando un puntatore per valore nella funzione printL e per riferimento nella funzione di inserimento, e per questo nel primo caso la modifica ha effetto solo all'interno della funzione?


PM Quote