猿问

你好,请问在c语言中用函数做参数怎么用?怎么实现?

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

狐的传说
浏览 125回答 3
3回答

MM们

不可以直接拿函数做参数的。只能这样命名函数一(),return一个值或表达式然后函数二(参数)函数二,参数可以等于函数一的return的值或表达式。

MMMHUHU

#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

收到一只叮咚

在上面的这个程序中,其实函数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也是一个指向函数的指针。
随时随地看视频慕课网APP
我要回答