In molti linguaggi di programmazione esistono due modi per invocare una funzione per valore e per riferimento.
Quando si ha una chiamata per valore ,sarà preparata una copia dei loro valori e questa sarà passata alla funzione chiamata .
Quando si ha una chiamata per riferimento si consentirà effettivamente alla funzione di modificare il valore della variabile.
Solitamente in C le chiamate di funzione sono per valore in modo che non ci siano effetti collateral