int (*(*(*pfunc)(int *))[5])(int *);
它表示pfunc是一个指向函数的指针,这个函数接受一个int *类型的参数,并返回一个指向数组的指针,这个数组有5个元素,每个元素都是一个指向函数的指针,这些函数都接受一个int *类型的参数,并返回一个int类型的值。
可以用typedef来定义一些新的类型,然后用这些类型来替换上述表达式中的一些部分,从而简化它。
// 定义一个新的类型func_ptr,它是一个指向函数的指针,这个函数接受一个int *类型的参数,并返回一个int类型的值
typedef int (*func_ptr)(int *);// 定义一个新的类型array_ptr,它是一个指向数组的指针,这个数组有5个元素,每个元素都是func_ptr类型的值
typedef func_ptr (*array_ptr)[5];// 定义一个新的类型pfunc_type,它是一个指向函数的指针,这个函数接受一个int *类型的参数,并返回一个array_ptr类型的值
typedef array_ptr (*pfunc_type)(int *);// 用pfunc_type来替换原来的表达式
pfunc_type pfunc;