重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

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

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

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

10余年的临沭网站建设经验,针对设计、前端、开发、售后、文案、推广等六对一服务,响应快,48小时及时工作处理。全网营销推广的优势是能够根据用户设备显示端的尺寸不同,自动调整临沭建站的显示方式,使网站能够适用不同显示终端,在浏览器中调整网站的宽度,无论在任何一种浏览器上浏览网站,都能展现优雅布局与设计,从而大程度地提升浏览体验。创新互联公司从事“临沭网站设计”,“临沭网站推广”以来,每个客户项目都认真落实执行。

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语言将函数名作为参数被另外一个函数调用怎么做?

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

#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语言中怎样把函数作为另一个函数的参数

先把TraverseSqList这个函数里的visit换个名字(比如f),要不然会冲突

status TraverseSqList(SqList l1,status (*f)(int i,SqList l1))

{

for(int i=0;il1.length ;i++)

f(i,l1);

coutendl;

return OK;

}

调用时直接写TraverseSqList(参数1,visit);就行


分享名称:c语言将函数名作为参数 c语言 函数作为参数
网页链接:http://cqcxhl.cn/article/doipopj.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP