Atribuindo * & array a um ponteiro
O trecho a seguir é deHarbinson, Steele C: um manual de referência (5ª edição). De acordo com o livro, as duas atribuições dep
são equivalentes.
7.5.6 Operador de endereço
int a[10], *p;
p = a; p = *&a;
No entanto, de acordo com o FAQ CPergunta 6.12 a
é do tipo ponteiro paraint
enquanto que&a
é do tipo ponteiro para matriz deint
.
Portanto, devemos receber um erro de tipo na segunda atribuiçãop = *&a
porque estamos tentando atribuir uma matriz deint
para um ponteiro.
Por que a tarefap = *&a
corrigir?