codice:
main()
{
	int *alfa, *beta;	// Hai dichiarato due puntatori a intero

	alfa=new int;		// Hai allocato lo spazio per un intero e assegnato
				// l'indirizzo di tale spazio al primo puntatore
				// Il valore dell'intero non e' stato definito

	beta=alfa;		// Hai copiato il puntatore precedente al secondo
				// Adesso sia alfa che beta puntano alla stessa
				// area di memoria, cioe' allo stesso valore intero

	*beta=32;		// Tramite il puntatore beta viene assegnato il valore 
				// dell'intero. Dato che e' la stessa area di memoria
				// puntata da alfa, anche alfa punterà al valore 32

	beta=new int;		// Hai allocato un nuovo spazio di memoria contenente
				// un intero e hai assegnato il suo indirizzo a beta
				// beta non punta piu' allo spazio puntato da alfa

	*beta=33;		// Assegni il valore 33 al nuovo intero puntato da beta 
	
	cout<<*alfa;		// Visualizzi il valore puntato da alfa che deve essere
				// 32 in quanto assegnato in precedenza tramite la copia
				// di alfa fatta su beta

	system("pause");
	return 0;
}
E' piu' semplice di quel che pensi ... quali sono i tuoi dubbi?