你这逗号我先忽略了……
第一个是int类型,不说了;
第二个是指向int[3]的类型,int[3]是含有3个元素,元素类型为int的数组类型;也就是说int(*)[3]指向int[3]数组类型的指针类型;
int (*)(int(*[3])(int*(*(*)[3])(int*)))是一个函数指针类型,被指向的函数类型返回类型为int,参数类型为int(*[3])(int*(*(*)[3])(int*));int(*[3])(int*(*(*)[3])(int*))本身是一个数组,它的元素类型是int(*)(int*(*(*)[3])(int*)),含有3个元素;int(*)(int*(*(*)[3])(int*))是一个函数指针类型,被指向函数的返回类型为int,参数类型为int*(*(*)[3])(int*);int*(*(*)[3])(int*)是一个数组指针类型,被指向的数组的元素类型是int*(*)(int*),含有3个元素;int*(*)(int*)是一个函数指针类型,被指向的函数返回类型为int*,参数为int*;int*是指向int的指针类型。
int (*p)[3];//p是指向一个有三个元素的int型数组的指针
int (*p_func)(int(*[3])(int*(*(*)[3])(int*)));//p_func是一个函数指针,这个函数的返回值是int,参数又一个是数组指针函数,类型为int(*[3])(int*(*(*)[3])(int*)),返回值是int,参数int*(*(*)[3])(int*)......