que - punteros void lenguaje c
¿Excepción a la matriz que no se descompone en un puntero? (1)
Por supuesto.
En C99 hay tres casos fundamentales, a saber:
cuando es el argumento del operador
&
(address-of).cuando es el argumento del operador
sizeof
.Cuando es un literal de cadena de tipo
char [N + 1]
o un literal de cadena ancha de tipowchar_t [N + 1]
(N
es la longitud de la cadena) que se utiliza para inicializar una matriz, como enchar str[] = "foo";
owchar_t wstr[] = L"foo";
.
Además, en C11, el operador de alignof
nuevo recién introducido tampoco permite que su argumento de matriz decaiga en un puntero.
En C ++, existen reglas adicionales, por ejemplo, cuando se pasa por referencia.
He visto en muchos mensajes que "en la mayoría de los casos, los nombres de los arreglos decaen en punteros".
¿Puedo saber en qué casos / expresiones el nombre de la matriz no se descompone en punteros a los primeros elementos?