Vi ringrazio per le risposte.
Credo di aver capito, in sostanza il nome dell'array(A) coincide con l'indirizzo del primo elemento (&A[0]) e, allo stesso tempo, con l'indirizzo dell'array (&A).
Tuttavia, sebbene siano sinonimi, ho notato che delle differenze tra le tre scritture ci sono e il seguente codice credo che lo dimostri:
#include <stdio.h>
int main()
{
int A[3] = {1,2,3};
printf("%X\n",A);
printf("%X\n",&A[0]);
printf("%X\n",&A);
printf("%X\n",A+1);
printf("%X\n",&A[0]+1);
printf("%X\n",&A+1);
printf("%u\n",sizeof(A));
printf("%u\n",sizeof(&A[0]));
printf("%u\n",sizeof(&A));
return 0;
}
OUTPUT:
61FF14
61FF14
61FF14
61FF18
61FF18
61FF20
12
4
4
Ciò mi porta a fare le seguenti riflessioni:
1) A è esattamente equivalente a &A[0], ovvero A corrisponde all'indirizzo del primo elemento dell'array: infatti se scrivo A + 1 oppure &A[0] + 1, in entrambi i casi mi sposto di 4 bytes, ovvero mi sposto al successivo intero presente nell'array;
2) A è equivalente a &A ma per una ragione diversa rispetto al caso precedente, e tra l'altro solo in parte: se A (e &A[0]) corrisponde all'indirizzo del primo elemento dell'array, &A corrisponde all'indirizzo dell
'intero array: tale differenza la si nota se guardiamo il differente output che si ottiene quando scriviamo A + 1 (o &A[0] + 1), ottenendo 61FF18, rispetto a &A + 1, che restituisce invece 61FF20; questo perché scrivendo &A + 1 non ci spostiamo all'elemento successivo dell'array, ma ci spostiamo all'indirizzo immediatamente successivo all'ultima cella dell'array, cioè alla prima posizione libera che troviamo dopo l'array A, ovvero ci spostiamo di tanti byte quanti sono quelli occupati dall'intero array.
3) utilizzando l'operatore sizeof, sorprendentemente, A non viene interpretato come indirizzo, ma come "l'array stesso", in quanto restituisce 12 bytes, ovvero la dimensione dell'intero array; nel caso invece di &A[0] e &A, questi vengono interpretati effettivamente come indirizzi, in quanto restituisce i 4 bytes che compongono un qualunque indirizzo di memoria sul mio pc.
E' corretto il mio ragionamento?
P.S. Buona Pasqua a tutti