Sì ... ma il compilatore ti segnalerebbe un bel warning! (se hai i warning attivati, ovviamente).Originariamente inviato da tia86
Perchè? Tanto il compilatore associa ad 'array' un indirizzo (non alloca niente in memoria), quindi dire array o &array è la stessa cosa (è come chiedere l'indirizzo dell'indirizzo, un controsenso ma il compilatore lo accetta lo stesso)
Dire:
è indubbio che si ottiene lo stesso indirizzo, e cioè l'indirizzo del primo elemento. Ma il tipo, tecnicamente, è diverso!!!codice:a) array b) &array c) &array[0][0]
Mi spiego meglio. Se la funzione è definita:
solo passare array è giusto, perché gli altri due:codice:void func (int arr[10][10])
Da lì il warning ("incompatible pointer type" o qualcosa del genere a seconda del compilatore).codice:b) &array è di tipo int (*)[10][10] c) &array[0][0] è di tipo int *

Rispondi quotando