2011-09-08 19 views

Respuesta

10

arr es una expresión que se evalúa como int* (esta es la famosa hazaña de "arrays de decaimiento a puntero" ure).

&arr es una expresión que se evalúa como int (*)[3]. 'decadencia'

nombres de matriz de punteros al primer elemento de la matriz en todas las expresiones excepto cuando son operandos a los sizeof o & operadores. Para esas dos operaciones, los nombres de los arreglos retienen su 'arreglo' (C99 6.3.2.1/3 "Lvalues, arrays y designadores de funciones").

+1

+1: También me gustaría señalar que, aunque de un tipo diferente, ambas expresiones devuelven la misma dirección del puntero. –

0

No funciona exactamente por la misma razón que:

int i; 
int* pi = i; // error: no conversion from int to int* 
Cuestiones relacionadas