1. (An easy one to start off)
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 an array of 100 somethings,
  3. the somethings are pointers,
  4. they point to characters.
So abc is an array of 100 pointers to characters,
         or
abc is an array of 100 string pointers, its the same thing.


A pointer usually requires 4 bytes, so (sizeof abc) is 400.