C++函数指针

来源:互联网 发布:电视网络播放量排行榜 编辑:程序博客网 时间:2024/06/07 03:52

可以编写将一个函数的地址作为参数的函数,这样便可以在一个函数里用到另外一个函数。但若想一个函数里能用到另外的函数,则函数调用是最简单的选择。而选择函数的地址作为参数,可以在不同时间内传递不同的函数的地址,这样便可以操作不同的函数。

如何获取函数的地址和声明函数指针

很简单,函数的地址就是函数名本身,传参时,传函数的名字便可。例如:
#include<iostream>#include<cstdio>using namespace std;int fun1(int a)  {return a*a;}int fun2(int (*p)(int),int a)  //int (*p)(int)表示声明一个函数指针p,该函数的返回型是int,参数有一个类型是int{                              //函数调用时传过来的函数地址必须和参数的函数指针类型相同(函数返回型和参数个数类型)return (*p)(a);  //p是函数指针,则*p是函数,因此它等价与fun1,可以用它来调用函数                 //另外,还有另一种写法  p(a)                 //既然p是函数的地址,而前面说到了函数名fun1也是函数的地址,则p等价与fun1,可以用它来调用函数}int main(){int a;cin >> a;cout << fun2(fun1, a) << endl;  //通过函数名传递函数地址,若为fun2(fun1())表示先调用fun1(),并将该函数返回值作为参数传给fun2()return 0;}


原创粉丝点击