L'asterisco dopo essere stata già dichiarata la variabile puntatore si mette per fare riferimento alla variabile o a quello che punta.. L'operatore & si utilizza per riferirsi all' indirizzo di memoria..
codice:
int a = 5, *b = &a;
*b = 8; /*a = 8*/
Comunque è già spiegato nel tuo esempio 
Un puntatore può avere come valore l'indirizzo di memoria di un' altra variabile (ossia punta ad essa).
codice:
#include <stdio.h>
int main()
{
int a = 5, *b = &a;
printf("a @\t%p --> %d\n", &a, a);
printf("b =\t%p --> %d\n", b, *b);
return 0;
}