Examples:
int * volatile * foo;
declare foo as pointer to volatile pointer to int
int (*(*foo)(void ))[3]
declare foo as pointer to function (void) returning pointer to array 3 of int
Examples:
int * volatile * foo;
declare foo as pointer to volatile pointer to int
int (*(*foo)(void ))[3]
declare foo as pointer to function (void) returning pointer to array 3 of int