char * const cp; -- cp is a const pointer to a char
const char * p -- p is a pointer to const char
const int *const cp -- cp is a const pointer to const integer
int *p[n] -- p is an array with n elements of integer pointer
int (*p)[n] -- p is an pointer to an array with n integers
int *p() -- p is a function with return type of an pointer of int
int (*p)() -- p is a function pointer to a function than takes no argument return an integer
int (*p)(int) -- An array of 10 pointers to functions that take an integer argument and return an integer
int **a; -- A pointer to a pointer to an integer
typedef string *pstring;
const pstring cstr; -- cstr is a const pointer to a string, and is equivalent to string *const cstr;