Originariamente inviato da anx721
Non è una questione di funzioni di input/output, ma dipende da una regola fondamentale del C, ovvero tutti i parametri delle funzioni sono passati per valore, cioè viene creata una copia temporanea della variabile che passi, e quindi le modifiche operate da una funzione sul suo argomento sono perse una volta usciti dalla funzione; se una funzione deve modificare la variabile argomento, come deve fare la scanf, diventa necessario passare non la variabile stessa, ma il suo indirizzo, in modo che la funzione, accedendo alla locazione in cui si trova la variabile, possa modificarla.
leggendo quanto hai scritto mi è venuto un dubbio...
se faccio cosi' il valore della var viene cmq modificato vero?
codice:
void funz(int *a){
*a=10;
}
int main(){
int a=5;
printf("\nValore di a prima della chiamata della funz %d\n",a);
funz(a);
printf("\nDopo la chiamata a vale %d\n",a);
return 0;
}
Grazie