Complex C Declarations
int i; i as an int int *i; i as a pointer to an int int **i; i is a pointer to a pointer to an int int *(*i)(); i is a pointer to a function returning a pointer to int int *(*i[])(); i is an array of pointers to functions returning pointers to an int int *i[5]; i is an array of 5 pointers to int int (*i)[5]; i is a pointer to an array of 5 ints int *i(); i is a function returning a pointer to an int int (*i)(); i is a pointer to a function returning int int *(*(*i)())[5] i is a pointer to a function returning a pointer to an array of 5 pointers to an int