Il linguaggio è il C.
Qualcuno sa aspiegarmi cosa fa esattamante questo codice?

char s[100],t[100];
gets(s);
gets(t);
int nocc=0;
//inizio codice che non so cosa faccia
char * p = t; //istruzione che non ho capito
while(p = strstr(p,s), p!= NULL)
{
++nocc;
printf("Occorrenza all'offset %d\n",p-t);
++p;
}

cioè con char *p = t; che cosa fa?
cosa è stao definito? una variabile puntatore che punta al primo elem
della stringa t?
qui (p = strstr(p,s), p!= NULL) che succede?
Spero di essermi riuscito a spiergare.
Grazie mille per le risposte.