Do czego powraca sizeof (& array)?
Zgodnie z pytaniem:Dlaczego adres tablicy jest równy jej wartości w 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;
}
Wydajność:
sizeof(str2): 10 bytes
sizeof(&str2): 4 bytes
wiem tostr2
sam jest adresem pierwszego elementu w tablicystr2
. I to kiedystr2
jest argumentemsizeof
zwraca rozmiar całej tablicy str2.
Dodatkowo,&str2
jest również adresem pierwszego elementu arrstr2
ale z innego typu (char (*)[N]
== wskaźnik do tablicy). Ale jak to zrobić&str2
zachowuj się, gdy jest to argumentsizeof
?