牛津阅读树点读157本:以下程序通过函数指针P调用函数fun(),请在空格处写出定义变量P的语句。

来源:百度文库 编辑:高考问答 时间:2024/04/28 04:47:44
viod fun(int *x,int *y)
{.....}
main()
{int a=10,b=20;
__________;/*定义变量P*/
p=fun;p(&a,&b);
....}
到底是把p=fun传给viod fun(int *x,int *y),还是把p(&a,&b)里面a,b的地址值传上去。如果是把p(&a,&b)里面a,b的地址值传上去,那么P=fun;有什么作用?

应该是这样吧 void (*p)();
定义函数:
数据类型 函数名(参数列表)
参数说明;
{
函数体
}
而在函数中,函数名跟数组名一样,保存了该内存地址,大家都知道,内存保存的信息包含有指令和数据,那么数组的则是数据,函数则是指令,当使用函数名以后()和相对应的参数时为访问该地址的指令!
p = fun;是把fun函数的地址赋给函数指针变量p,而 p(&a,&b)则相当于 fun(&a,&b)

softnow正解

void (*p)(int *x,int *y);
这是指向函数的指针