int y=2;
int *p;
/* p è un puntatore ad intero, quindi si usa per contenere un indirizzo di una
variabile intera, assegnamoli un valore: */
p=&y;
/* da ora in poi, ad es, fare *p++ equivale a fare y++ */
/* ora facciamo un pò di "casino" */
*p=&y ;
/* ora y (perchè *p -> y) contiene il suo indirizzo sotto forma di intero...non è una
cosa che serve a molto */
in merito a **p....cosa vuol dire quanto vale? Se lo dichiari e' un puntatore ad un puntatore.
Se per p intendi la stessa p che hai usato prima **p non esiste.
Ad esempio int **p è un puntatore ad un puntatore di interi che equivale ad una matrice di interi.