就是在函数里,声明函数时,最后不是有参数吗?一般格式是.类型标识符 函数名(参数)..我知道拿函数做参数的原理,也知道应该怎么用..可是,如果拿函数做参数具体应该怎么用??
3 回答

MMMHUHU
TA贡献1834条经验 获得超8个赞
#include <stdio.h>
void print_result(char *funcname, int (*pfunc)(int), int x)
{
printf("%s(%d)=%d\n", funcname, x, pfunc(x));
}
int inc(int x)
{
return x+1;
}
int main()
{
print_result("inc", inc, 5);
return 0;
}
运行结果:
inc(5)=6

收到一只叮咚
TA贡献1821条经验 获得超4个赞
在上面的这个程序中,其实函数int inc(int)就相当于int(*inc)(int),因为ANSI规定函数本身就是一个指针,而上面的inc其实本身就是一个指针,这个指针指向一个返回整数的函数,于是在函数void print_result(char *funcname,int(*pfunc)(int),int x)中,int(*pfunc)(int)其实本身就是一个指针,这样就不难理解,在main()函数中调用print_result函数时传递的是inc了,因为inc也是一个指向函数的指针。
- 3 回答
- 0 关注
- 124 浏览
添加回答
举报
0/150
提交
取消