Linguaggio C: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 2 151:
==== Passaggio dei parametri per riferimento ====
I parametri in C vengono passati alle funzioni per valore. Questo significa che durante l'esecuzione di un programma ogni chiamata ad una funzione dovrà ricevere una copia di tali parametri. Inoltre, ogni volta che la funzione tenterà di modificare un parametro ricevuto, questa avrà effetto solo all'interno della funzione stessa; possiamo dire che avrà effetto sulla copia del parametro e non sull'originale.
Esistono ovviamente casi in cui c'è la necessità di dover modificare una variabile passata a una funzione e altri casi in cui la copia di un parametro passato per valore sarebbe troppo dispendioso l'utilizzo in termini di tempo e memoria nel caso di grandi quantità di dati.
Il C permette di simulare un passaggio per riferimento alle funzioni attraverso l'uso dei puntatori. La funzione non riceverà più una copia della variabile ma l'indirizzo di tale variabile. In questo modo ogni modifica sul parametro passato avrà effetto anche sulla variabile originale.
Consideriamo il classico esempio della funzione swap che scambia due variabili. Nella prima versione i parametri sono passati per valore, nella seconda vengono passati per riferimento.