in C esistono solo due tipi di passaggio parametri:
- Per Valore
- Per Indirizzo
Esempio Passaggio Per Valore:
codice:
int Cubo (int n){
return n*n*n;
}
Alla Funzione viene passato un valore e ne viene ritornato un altro.
Esempio Passaggio per Indirizzo:
codice:
void Cubo (int *n) {
*n = (*n) * (*n) * (*n);
}
Il Valore non viene Ritornato perche' viene modificata direttamente la varibile passata
codice:
int main() {
int n = 3;
Cubo(&n);
printf("Cubo: %d\n", n);
return(0);
}
Ovviamente il Cubo non e' una funzione da passaggio per indirizzo
una funzione dove serve il passaggio per indirizzo e' ad esempio la scambia
codice:
void Scambia (int *a, int *b) {
int tmp = *a;
*a = *b;
*b = tmp;
}
int main() {
int a = 3;
int b = 5;
Scambia(&a, &b);
return(0);
}
Non puoi realizzare la scambia senza utilizzare il passaggio per indirizzo