¿Es esto un puntero a un puntero del inicio de una matriz?
arrays pointer-to-pointer (2)
Acabo de ayudar a alguien con un código. Él tenía esto:
char dataArray[10];
Luego quería obtener un puntero al inicio de la matriz. En lugar de usar:
&dataArray[0]
o solo
dataArray
El usó
&dataArray
¿Terminó con un puntero a un puntero allí?
No estoy seguro de qué
&dataArray
le daría.
dataArray y & dataArray [0] apunta a la dirección del primer índice de la matriz para que sean lo mismo, pero & dataArray apuntará a la dirección de toda la matriz o podemos decir que dará la dirección donde está la matriz de 10 índices ubicado (en su conjunto)
-
&dataArray[0]
es de tipochar *
. Eso es un puntero achar
. -
dataArray
es de tipochar[10]
-
&dataArray
será del tipochar (*)[10]
. Ese es un puntero a matriz.
Aparte de eso, el valor será el mismo, es decir, apuntan a la misma dirección pero sus tipos no necesitan ser compatibles.
Ninguno de ellos es un puntero a puntero aquí. Son solo punteros con diferentes tipos.
Nota: Debido a la propiedad de descomposición de la matriz,
char [100]
se descompondrá en un
char *
, por ejemplo, cuando se pasa como un elemento de una función.