6.一些练习题
以上就是解读类型声明的基本内容了,接下来来做一些练习吧

下面这些声明分别代表什么?
int *(*arr[5])();
int *(*(*fp1)(int)) [10];
void **c(char, int (*)(int[][10]));
void * (*arr[5])(const char *, char * const);
写出以下函数/变量的声明
声明一个有10个元素的数组a,每个元素都是一个函数指针,指向的函数有一个const char*参数,函数的返回值是一个char*指针。
声明一个函数指针fp,指向的函数没有参数,返回值为数组指针,指向由3个函数指针构成的数组,每个指针指向一个原型为void f(int)的函数。
声明一个函数func,有两个参数,第一个参数是int,第二个参数是函数指针,指向的函数没有参数,返回值为指向double[3]的数组指针;函数func没有返回值。
可以用typedef来辅助声明。