// func returning int ptr
int *f();
// ptr to func returning int
int (*g)();
// func returning func ptr
int (*h())();
// int ptr
int *n;
// int ptr, int ptrptr, func returning int, func returning int ptr
int *p, **q, r(), *s();
// int ptr array
int *a[1];
// int array ptr
int (*b)[];
// ptr to func returning int array ptr
int (*(*c)())[];
// array of func ptr returning int ptr
int *(*d[1])();
// (const int) ptr, const (const int) ptr, const (volatile const (const int) ptr) ptr
const int *i, * const j, * volatile const * const k;
