int* (*(*fp)(void *))[10];
//这个类型用typedef分解出来
1.()的优先级最高所以先看(*fp),fp是个指针;
2. 假设 func=(*fp); func(void ) 是个指针函数返回值是个指针,参数是(void),所以fp是指向指针函数的函数指针;
3. int P[10] []优先级最高,所以P首先是个数组,数组成员是int型指针,所以看出P是个指针数组
4. 综合1,2,3可以看出fp是个指向指针函数的函数指针,并且函数指针的返回值指针是个10成员的数组的指针数组
(参考:C语言之数组指针与指针数组)
https://blog.csdn.net/weixin_42399752/article/details/98037837