声明一个指向含有10个元素的数组的指针,其中每个元素是一个函数指针,该函数的返回值是int,参数是int*,正确的是()
正确答案: C 你的答案: C (正确)
(int p[10])(int)
int [10]*p(int )
int ((*p)[10])(int *)
int ((int *)[10])*p
以上选项都不正确
解析:
C.
首先题目说要声明一个数组指针, 一般我们想到的数组指针是 随便来一个 int(*p)[10], 然后又说每个元素是一个函数指针,那么我们随便来一个 函数指针 int (*pf)(int *) . 然后把(p)[10]作为一个整体替代 pf 即 int((*p)[10]))(int *);
分析: 判断一个复杂式子看最高优先级的,*p是一个指针,然后(*p)外面是[],所以是数组指针,(p)[10])描述完毕,然后再看外面int()(int *)很明显,这是一个函数指针,所以这个数组中每个元素是函数指针