int (*(*p1)[5])(int*);
==> p1是一个指针,数组指针,指向的数组有5个元素,这5个元素为
指针,是函数指针,指向的函数类型为int(int*)
==> typedef int(FuncType)(int*);
typedef FuncType*(ArrayType)[5];
ArrayType* p1;
int*(*(*p2)(int*))(int*);
==> p2是一个指针,指向一个函数,参数为int*,返回值为指针,
是一个函数指针,指向的函数类型为int(int*)
==> typedef int (FuncType)(int*);
typedef FuncType*(FuncType1)(int*);
FuncType1* p2;
int (*(*p3)(int*))[5];
==> p3是一个指针,指向一个函数,参数为int*,返回值为指针,
指向数组,数组类型为int[5]
==> typedef int(ArrayType)[5];
typedef ArrayType*(FuncType)(int*)
FuncType* p3;