我如何理解以下复杂的声明?
char (*(*f())[])(); char (*(*X[3])())[5]; void (*f)(int,void (*)()); char far *far *ptr; typedef void (*pfun)(int,float); int **(*f)(int**,int**(*)(int **,int **));
c pointers declaration
c ×1
declaration ×1
pointers ×1