C语言程序设计(40)
来源:百度知道 编辑:UC知道 时间:2024/05/18 17:05:54
有以下程序
int add (int a,int b) {return (a+b); }
main()
{int k,(*f)(),a=5,b=10;
f=add;
...
}
则以下函数调用语句错误的是哪个?
k=(*f)(a,b);
k=add(a,b);
k=*f(a,b);
k=f(a,b);
why?
k=*f(a,b);
具体错在哪里?麻烦再讲下
这个k=f(a,b);
为什么是对的?还是没懂
int add (int a,int b) {return (a+b); }
main()
{int k,(*f)(),a=5,b=10;
f=add;
...
}
则以下函数调用语句错误的是哪个?
k=(*f)(a,b);
k=add(a,b);
k=*f(a,b);
k=f(a,b);
why?
k=*f(a,b);
具体错在哪里?麻烦再讲下
这个k=f(a,b);
为什么是对的?还是没懂
k=*f(a,b); 错误的原因是函数调用格式错误
用函数指针变量调用函数的格式如下:
(*函数指针变量名) (实参表)
从题中看出:k=(*f)(a,b); 正确
k=*f(a,b); 格式错误
因为程序中add,f都是一个函数名
k=add(a,b);
k=f(a,b)
还是这句话:k=*f(a,b); 你要调用就好点调用,不调用就不要搞格式错误行不?
k=*f(a,b);
我认为答案是k=*f(a,b);
k=(*f)(a,b); 利用指针函数】
k=add(a,b); 普通调用
k=f(a,b); 将指针和一般函数结合起来的
寻地址的方式使用调用函数
我认为是k=f(a,b); 是错的f是指向函数的指针,调用是要家取内容符*