Se sei interessato a cambiare il contenuto informativo della variabile passata,allora devi senza dubbio usare il passaggio per riferimento,altrimenti utilizzi quello per valore.

Tipico esempio:la funzione Scambia che scambia due numeri.Il prototipo deve essere necessariamente il seguente:
codice:
void Scambia(int *a,int *b);
Se non avessi passato le variabili per indirizzo...il contenuto informativo delle variabili a livello del main non sarebbe cambiato.
Un pò più chiaro o ti ho solo confuso le idee?