函数指针用法:
1)函数指针用于存放函数的入口地址。
定义格式:<数据类型> ( *<函数指针名> ) ( <参数类型表>);
eg:
int (*fp) ( int, int ); //定义函数指针fp,它指向具有两个整形参数且返回值为整形//的函数。
int max( int, int ); //一个函数声明
fp=max; //将函数max的入口地址赋给指针变量fp,max和fp均指向函数入口。
c=fp( a, b); //通过fp调用max函数。
2) 函数指针可以作为参数,作为公用接口。
eg:
#include <iostream>
using namespace std;
int main()
{
//原型声明
int max(int,int), min(int,int), sum(int,int);
int proc(int,int,int(*)(int,int));
int a,b;
cout<<"enter a and b:"<<endl;
cin>>a>>b;
//三次调用分别传递不同的函数入口
cout<<"max="<<proc(a,b,max)<<'\t';
cout<<"min="<<proc(a,b,min)<<'\t';
cout<<"sum="<<proc(a,b,sum)<<endl;
return 0;
}
int proc(int x,int y,int(*fp)(int,int))
{
return fp(x,y);
}
int max(int x,int y)
{
return x>y ? x:y;
}
int min(int x,int y)
{
return x<y ? x:y;
}
int sum(int x,int y)
{
return x+y;
}