2.
char (*abc)[100];


Rewrite it with all parentheses explicitly shown:
char ((*abc)[100]);

and read it from the inside out:
  1. abc is being declared,
  2. it is a pointer to something,
  3. the something is an array of 100 somethings,
  4. 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.