C/Vettori e puntatori/Puntatori: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
m prima era scritto "Al contrario, se si sottrae 1, il puntatore conterrà il valore 98." ciò non contraria l'affermazione precedende. meglio scrivere "allo stesso modo".
specifico meglio. e' importante dare i nomi alle operazioni. "passaggio per valore" e "passaggio per riferimento" aiutano a focalizzare l'attenzione su cosa si sta facendo e all'immensa differenza tra le due operazioni..
Riga 94:
L'aritmetica dei puntatori permette anche [[C/Vettori e puntatori/Interscambiabilità tra puntatori e vettori|l'interscambiabilità tra puntatori e vettori]].
==Funzioni e puntatori==
Se ad una funzione viene passato un {{IndexItem|puntatore}}puntatore (che può essere l'indirizzo di una variabile tramite l'operatore di indirizzo "&", oppure un puntatore a quella variabile), essa sarà in grado di modificare il valore puntato dal puntatore.
tale azione e' detta "passaggio di variabile per riferimento".
Per esempio:
 
Line 120 ⟶ 121:
#<code>printf("%d", a);</code> Stampa il valore ottenuto.
 
Sese invecesi ilfosse nostropassata programmaalla fossefunzione statola cosìsemplice variabile, essa avrebbe restituito <tt>2</tt>.
questo e' un caso di "passaggio per valore". la funzione creerà una copia della variabile e al termine la cancellerà.
NB la variabile passata dal main resterà INALTERATA.
 
<source lang="c">
Line 137 ⟶ 140:
}
</source>
 
RIASSUNTO:
 
1)passaggio per valore: void doubleof(int); --> per richiamarla --> doubleof(a);
viene creata una variabile temporanea. la variabile originale resta INALTERATA.
 
2)passaggio per riferimento: void doublef(int*); --> per richiamarla --> doubleof(&a);
viene passato l'indirizzo e ogni modifica modificherà direttamente la variabile originale.
 
=={{IndexItem|array, passaggio ad una funzione}}Passare un array ad una {{IndexItem|funzione}}funzione==