Suponha que x é um objeto do tipo struct celula:
struct celula {
   int  campo1;
   char campo2;
};

struct celula x;
x.campo1 = 2003;
x.campo2 = '$';

Suponha agora que px contém o endereço de x:

struct celula *px;
px = &x;

Então  px->campo1  é abreviatura de  (*px).campo1 .

Portanto, dizer  px->campo1  é o mesmo que dizer  x.campo1 .

 

Veja minhas notas sobre registros de structs.