2.
char (*abc)[100];
Rewrite it with all parentheses explicitly shown:
char ((*abc)[100]);
and read it from the inside out:
- abc is being declared,
- it is a pointer to something,
- the something is an array of 100 somethings,
- they are characters.
So abc is a pointer to an array of 100 characters.
but
Read the note attached to number 3.
A pointer usually requires 4 bytes, so (sizeof abc) is 4.