In parole molto sempli (anche perchè ho poco tempo) un PUNTATORE è un qualcosa che "punta" ad una zona di memoria, per accedere alla variabile presente in quella zona bisogna deferenziare il puntatore (ovvero dire al computer "leggi la variabile presente nella zona di memoria a cui punta il puntatore"), un riferimento è la zona in cui è memorizzata una variabile. Posso quindi inizializzare un puntatore a puntare al riferimento di una variabile, e poi "spostare" il puntatore su un'altra zona della memoria senza tuttavia modificare alcun valore.....spero di essere stato chiaro e sopratutto esatto!
Ciao