右左法则:首先从最里面的圆括号(应该是未定义的标识符)看起,然后往右看,再往左看。每当遇到圆括号时,就应该掉转阅读方向。一旦解析完圆括号里面所有的东西,就跳出圆括号。重复这个过程直到整个声明解析完毕。
int*(*(*fp1) (int)) [10]
fp1函数指针变量,其指向一个形参为int返回值为数组指针,该数组指针指向整型指针函数
int *(*(*arr[5]) () ) ()
arr是一个函数指针数组,数组里的元素指向一个形参为空,返回值为函数指针,该指针指向一个形参为空,返回值为int*
float (*(*b() ) [ ] ) ()
b是一个函数,该函数形参为空,返回值为数组指针,该指针指向一个函数指针数组,该数组元素指向一个形参为空返回值为float的函数
void * (*c) (char a,int (*) ( ) )
c是一个函数指针变量,该函数指向一个由两个形参,返回值为void*的函数,第一个形参为char,第二个形参为函数指针,该指针指向一个形参为空,返回值为int的函数
float (*(*e[10]) (int *)) [5]
e是一个函数指针数组,数组里的元素指向一个形参为int*,返回值为数组指针,指向数组为float型数组