Cdecl - translate C gibberish to English and the other way around

https://cdecl.org/

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