c语言函数作为参数 c语言 函数作为参数

C语言将函数名作为参数被另外一个函数调用怎么做?

楼主已经开始想要知道如何用函数指针了,不错,好学生,给你个例子

创新互联建站专注于布尔津网站建设服务及定制,我们拥有丰富的企业做网站经验。 热诚为您提供布尔津营销型网站建设,布尔津网站制作、布尔津网页设计、布尔津网站官网定制、小程序制作服务,打造布尔津网络公司原创品牌,更为您提供布尔津网站排名全网营销落地服务。

#include stdio.h

int ff(int(*p)(int,int),int a,int b)//原始写法,阅读不便

{

return p(a,b);

}

typedef int(*Pfun)(int,int);//定义函数指针类型,同时申明了原型 返回int 两个int形参

int f(Pfun p,int a,int b) //改进写法 易懂

{

return p(a,b);

}

int add(int a,int b)

{

printf("加法函数add被调用:");

return a+b;

}

int sub(int a,int b)

{

printf("减法函数sub被调用:");

return a-b;

}

void main()

{//函数指针初步应用

int a=1,b=2;

printf(" %d+%d=%d\n",a,b,f(add,a,b));

printf(" %d-%d=%d\n",a,b,f(sub,a,b));

printf(" %d+%d=%d\n",a,b,ff(add,a,b));

printf(" %d-%d=%d\n",a,b,ff(sub,a,b));

}

///////////运行结果:

加法函数add被调用: 1+2=3

减法函数sub被调用: 1-2=-1

加法函数add被调用: 1+2=3

减法函数sub被调用: 1-2=-1

c语言向函数传递函数作为参数

#include stdio.h

//---子函数声明---// 

int func1();

int func2(int (*func1)());        //形参为函数指针(即指向函数的指针) 

//---主函数---// 

int main(){

printf("向函数二传递函数一,\n即函数一作为函数二的参数。\n");

printf("%d ",func1());

printf("%d\n",func2(func1));//注意函数名即为函数地址!!!!!! 

}                                //实参为函数名func1或者func1,两者等价,而非func1() 

//---子函数定义---// 

int func1(){

return 1;

}

int func2(int (*func1)()){        //形参为函数指针(即指向函数的指针)

return func1()+1;

}

【C语言】函数作为函数参数

Question:在函数void function()中,需要将另外一个函数double input()的函数名作为参数。

typedef double (*P)(int);

Note:参数部分需要注意,函数input()所有的输入参数类型都需要包含在内。

例如 double input(double u[5], int num, double x), 则在定义时写作 typedef double (*P)(double*,int,double)。

此时,函数作为一种类型,可以直接被其他函数调用。

函数声明中定义 void function(P input),调用function(input)即可。

也可以写成


本文标题:c语言函数作为参数 c语言 函数作为参数
转载源于:http://scyanting.com/article/doghdgg.html