int t[10];
int * u = t;
cout << t << " " << &t << endl;
cout << u << " " << &u << endl;
uscita:Indirizzo di matrice
0045FB88 0045FB88
0045FB88 0045FB7C
L'uscita u
senso.
Capisco che t
e &t[0]
dovrebbero avere lo stesso valore, ma come mai &t
è lo stesso? Cosa significa in realtà & t?
¤ L'unica differenza tra 't' convertita in puntatore e' & t', è il tipo di puntatore. Il referente di quest'ultimo è formalmente di tipo array, quindi aggiungendo 1 ad esso si muove un bel po '(alla successiva matrice di questo tipo in memoria).Mentre il referente dell'ex è del tipo di elemento. Terminologia: nel gruppo Usenet [comp.lang.C++] ci sono state alcune polemiche sul fatto che un puntatore come il tuo 'u' possa essere" puntato "sull'array, dal momento che il suo referente non è di tipo array. Ciò è stato risolto mille volte facendo riferimento all'uso di tale formulazione da parte dello standard. Cheers & hth., –
@alf non era che quel tipo di paul che girava con quella domanda? –
@ JohannesSchaub-litb: sì –