Se ti fa comodo pensarlo un puntatore è come un intero che invece di memorizzare un valore che ti serve, memorizza la locazione di memoria di una variabile.
Un riferimento è una comodità del C++ che per quanto ne so indica semplicemente di non passare le variabili per valore, cioè non una copia. E' come un puntatore implicito.