如何通过函数指针调用函数(实现代码)

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

如何通过函数指针调用函数(实现代码)说明:指针可以不但可以指向一个整形,浮点型,字符型,字符串型的变量,也可以指向相应的数组,而且还可以指向一个函数。一个函数在编译的时候会被分配给一个入口地址。这个函数入口地址称为函数的指针。可以用一个指针变量指向函数,然后通过该指针变量调用此函数。定义指向函数的指针变量的方法是:与函数的原型进行比较一个例子:一般方法的代码:然后,我们定义一个指针变量,指向max函数,然后通过该指针变量调用函数。通过(*p)来调用函数int(*p)(int,int);int【指针变量p指向的函数的类型】(*p)【p是指向函数的指针变量】(int,int)【p所指向的形参类型】;int【函数的类型】max【函数名】(int,int)【函数的形参类型】;intmax(int,int);int【函数的类型】max【函数名】(int,int)【函数的形参类型】;#includeiostreamusingnamespacestd;intmain(){intmax(intx,inty);inta,b,c,m;coutPleaseinputthreeintegers:endl;cinabc;m=max(max(a,b),c);coutMax=mendl;return0;}intmax(intx,inty){intz;if(xy){z=x;}else{z=y;}returnz;}#includeiostream可以通过指针p直接调用函数usingnamespacestd;intmain(){intmax(intx,inty);int(*p)(intx,inty);p=max;inta,b,c,m;coutPleaseinputthreeintegers:endl;cinabc;m=(p)((p)(a,b),c);coutMax=mendl;return0;}intmax(intx,inty){intz;if(xy){z=x;}else{z=y;}returnz;}#includeiostreamusingnamespacestd;intmain(){intmax(intx,inty);int(*p)(intx,inty);p=max;inta,b,c,m;coutPleaseinputthreeintegers:endl;cinabc;m=p(p(a,b),c);coutMax=mendl;return0;}intmax(intx,inty){intz;if(xy){z=x;}else用指向函数的指针作为函数的参数函数指针变量最常见的用途之一是作为函数的参数,将函数名传递给其他函数的形参。这样那个就可以在调用一个函数的过程中,根据给定的不同的实参,调用不同的函数。例如,利用该方法解决,两个函数y1=(x+1)^1;y2=(2x+3)^2;y3=(x^2+1)^3分析:编写3个函数f1,f2,f3,用来求上面3个函数x+1,2x+3,x^2+1的值。然后编写一个通用函数Squar,他有两个形参:a次方和指向函数、{z=y;}returnz;}#includeiostream#includemath.husingnamespacestd;doublefun1(doublen){doubler;r=n+1;returnr;}doublefun2(doublen){doubler;r=2*n+3;returnr;}doublefun3(doublen){doubler;r=(pow(n,2)+1);returnr;}doubleSquar(inta,doublex,double(*p)(double)){doubler,z;z=(*p)(x);r=pow(z,a);returnr;}intmain(){doublefun1(doublen);doublefun2(doublen);doublefun3(doublen);doubleSquar(inta,doublex,double(*p)(double));doublex;coutPleaseinputx:;cinx;    cout(x+1)^1=;coutSquar(1,x,fun1)endl;cout(2x+3)^2=;coutSquar(2,x,fun2)endl;cout(x^2+1)^3=;coutSquar(3,x,fun3)endl;coutendl;return0;}

1 / 4
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功