¿Qué devuelve sizeof (& array)?
Siguiendo la pregunta:¿Por qué la dirección de una matriz es igual a su valor en C?
#include <stdio.h>
#define N 10
char str2[N]={"Hello"};
int main(){
printf("sizeof(str2): %d bytes\n", sizeof(str2));
printf("sizeof(&str2): %d bytes\n", sizeof(&str2));
return 0;
}
Salida:
sizeof(str2): 10 bytes
sizeof(&str2): 4 bytes
Yo sé esostr2
solo es la dirección del primer elemento en la matrizstr2
. Y que cuandostr2
es un argumento desizeof
devuelve el tamaño de toda la matriz str2.
Adicionalmente,&str2
También es la dirección del primer elemento en arr.str2
pero de diferente tipo (char (*)[N]
== puntero a la matriz). Pero como hace&str2
comportarse cuando es un argumento desizeof
?