allora sostanzialmente la referenza è più comoda da usare se non devi lavorare sul puntatore....
nel senso che se passi una struttura, se passi un puntatore devi usare -> per accedere ai suoi valori; se usi un reference basta il .
Tuttavia, con il tempo ci si accorge che occorre definire uno standard, per permettere ad altri (o anche a noi stessi a distanza di tempo) di capire il codice che abbiamo scritto.
Per questo è preferibile utilizzare i puntatori perchè, anche nella chiamata della funzione risulti evidente che quella funzione modificherà il valore della variabile passata.
Per esempio:
codice:
typedef struct esempio{....};
struct esempio prova;
void funzionepunt(struct esempio *punt){....}
void funzioneref(struct esempio &ref){.....}
int main(){
// si capisce che passa un puntatore, e che quindi ci sarà la modifica di prova
funzionepunt(&prova);
//è uguale alla chiamata con passaggio per valore
//leggendo si potrebbe capire che prova è passata per valore e che quindi non verrà modificata dalla funzione
funzioneref(prova);
}
spero si capisca quello che intendo.