Un motivo per utilizzare i puntatori è se ha senso passare un valore NULL
nella funzione. Con un puntatore, ci si aspetta che sia in grado di farlo. Con un riferimento, non è previsto che sia in grado di farlo.
(Tuttavia, facendo le cose difficili è ancora possibile passare un NULL in un parametro di riferimento. Ci si può aspettare che la funzione chiamata potrebbe bloccarsi in questo caso.)
Un'altra convenzione è che se si passa un puntatore in una funzione, la funzione può utilizzare il puntatore per assumere la proprietà dell'oggetto (specialmente in un ambiente contato di riferimento simile a COM). Se si passa un riferimento, la funzione chiamata può aspettarsi di utilizzare l'oggetto per la durata della chiamata della funzione, ma non di mantenere un puntatore all'oggetto da utilizzare in un secondo momento.
fonte
2009-07-04 08:53:37
Dupe di http://stackoverflow.com/questions/57483/difference-between-pointer-variable-and-reference-variable-in-c tra molti, molti altri –