int t[10];
int * u = t;
cout << t << " " << &t << endl;
cout << u << " " << &u << endl;
de salida:Dirección de la matriz
0045FB88 0045FB88
0045FB88 0045FB7C
La salida para u
tiene sentido.
Entiendo que t
y &t[0]
deben tener el mismo valor, pero ¿cómo es que &t
también es el mismo? ¿Qué significa realmente &?
¤ La única diferencia entre 't' convertida en puntero, y' & t', es el tipo de puntero. El referente de este último es formalmente del tipo de matriz, por lo que sumarle 1 lo mueve bastante (a la siguiente matriz de ese tipo en la memoria).Mientras que el referente del primero es del tipo de elemento. Terminología: en el grupo de Usenet [comp.lang.C++] hubo cierta controversia sobre si se puede decir que un puntero como su 'u'" apunta "a la matriz, ya que su referente no es del tipo de matriz. Eso se resolvió en innumerables ocasiones al señalar el uso del estándar de dicha redacción. Cheers & hth., –
@alf ¿no fue ese chico paul curioseando con esa pregunta? –
@ JohannesSchaub-litb: sí –