La tua è un'osservazione molto acuta.
Secondo lo standard ANSI C, il valore di un array coincide con l'indirizzo del suo primo elemento.
Quindi se ho
char prova[30];
posso assolutamente asserire che
prova == &prova[0]
Il che spiega il tuo dubbio.
Puoi facilmente verificare che, dal momento che le struct sono una forma "generale" di array, l'indirizzo di una struct coincide con l'indirizzo del primo elemento della struct, cioè:
struct prova
{
int a;
int b;
} ciao;
accade che:
&ciao == &ciao.a
Se tutto ciò non ti è ancora chiaro, ti basta leggere lo standard ANSI C, che è molto chiaro nel definire questo genere di dettagli :-)
Ciao!
|