链接:https://www.nowcoder.com/questionTerminal/242d747044bd417e95fe37d69884dff8 来源:牛客网

声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是()

A.(int* p[10])(int* )

B.int [10] * p(int* )

C.int (* (* p)[10])(int* )

D.int ((int* )[10])*p

C

先看未定义标识符p,p的左边是*,* p表示一个指针,跳出括号,由于[]的结合性大于*,所以(* p)[10]的含义为* p指向一个大小为10的数组;

左边又有一个 * 号,用来修饰(* p)[10]数组的元素,即 * ( * p)[10]表示 * p指向一个大小为10的数组,且每个数组的元素为一个指针。

跳出括号,根据右边(int*)可以判断( * (* p)[10])是一个函数指针,该函数的参数是int*,返回值是int。所以选C。

参考博客: http://blog.csdn.net/code_crash/article/details/4854965