Ciao ti dirò che se stiamo parlando di c++ (in questo forum pieno di linguaggi si fa sempre un po confusione, è come una torre di Babele!) l'effetto generato è identico: il passaggio per riferimento o per indirizzo (che semanticamente parlando sono la stessa identica cosa), ovvero il primo da te postato (quello che aveva delle ampersand (&) prima deigli identificatori dei parametri effettivi), ha lo stesso identico effetto di quando tra gli argomenti utilizzi dei puntatori: in ogni caso stai passando al sottoprogramma degli INDIRIZZI di variabili/ecc... ma mentre nel primo caso il tutto avviene automaticamente(il compilatore invia l'indirizzo che viene acquisito dal sottoprogramma che lavora direttamente sulla variabile del chiamante, ecc...), nel secondo caso devi gestire esplicitamente il passaggio (devi cioè inviare al sottoprogramma un puntatore o un *indirizzo* e quando devi utilizzare i valori in esso contenuti devi appunto anteporre all'identificatore del puntatore il simbolo *).