1) q è una struct. L'accesso al dato si effettua tramite .codice:struct Qualcosa { int dato; }; struct Qualcosa q; struct Qualcosa *pq; pq = &q; 1) q.dato; 2) (*pq).dato; 3) pq->dato;
2) pq è un puntatore a una struct. Per accedere al dato devo prima dereferenziare il puntatore pq, tramite (*pq), e poi accedere al dato tramite il punto.
3) pq è un puntatore a una struct. Per accedere al dato senza dereferenziare il puntatore posso usare l'operatore ->
In pratica la 3 è la versione breve (ed elegante) di 2.

Rispondi quotando