第4个回答 推荐于2017-09-01
个人答案:A
首先看main函数中的定义,int (*a)(int*),这里定义了一个函数指针a,即返回值是int型,参数为int*这样一种函数类型的指针。你的fun函数应该返回的是int型,这样的话,我们来看下这几个答案:
(A) a既然是函数指针,那么要给它赋值才能使用,赋值的时候函数的类型一定要匹配,那么就要给a赋一个返回值为int型,参数为int*型的函数指针,fun 正是这样的函数,所以 a=fun没有问题。调用的时候,这个时候a和fun就是一样的了,调用的时候把fun换成a就行了,但是传给a的参数应该是int*型的,这里面的w是一个整型数组名,也代表了首元素的地址,即w=&w[0],是int*型,所以将w传给函数a没有问题。
(B) a=fun没有问题,参数传递也没有问题,只是调用的时候不用*a,直接a就行了。
(C) int *b(),这样看的话,b是一个返回值为int*,参数为空的函数,赋值的时候就不对了
(D) b既然是函数,怎么能传给fun的int*型参数呢本回答被提问者和网友采纳