array
and &array
both yield a pointer to the same address, but with different types. The former is equivalent in most situations to &array[0]
, a char *
in your case. &array
, however, is the address of the array itself, which has type char (*)[10]
in your example.