Following the question: How come an array's address is equal to its value in C?
#include #define N 10 char str2[N]={\"Hello\"}; int m
str2 is of type char [10] (i.e, array 10 ofchar`)
str2
char [10]
10 of
&str2 is of type char (*)[10] (i.e., pointer to an array 10 of char).
&str2
char (*)[10]
10
char
So sizeof (&str2) yields the size of an objet of pointer type char (*)[10]
sizeof (&str2)