指向函数的指针必须包含指向函数的内存地址。
声明方式:返回类型 (*Type)(参数)。
有三部分组成:指向函数的返回类型;指针名称;指向函数的形参列表。
注:赋给指针的函数必须与定义的指针类型相同。
我们可以使用初始化语句来初始化函数指针,也可以是这个指针指向另一个函数。
函数的指针可以作为参数,指针在不同的情况下指向不同的函数,这样使得具体使用的函数由调用程序决定。
#include <iostream> using namespace std; long sumA(long a,long b); long sumB(long x,long y); long sum(long x,long y,long (*pf)(long m,long n)); int main(void) { long (*GetSum)(long a,long b); GetSum=sumA; cout<<"sumA="<<GetSum(2,3)<<endl; //5 GetSum=sumB; cout<<"sumB="<<GetSum(2,3)<<endl; //10 cout<<sum(2,3,sumA)<<endl; //5 cout<<sum(2,3,sumB)<<endl; //10 } long sumA(long a,long b) { return a+b; } long sumB(long x,long y) { return 2*(x+y); } long sum(long x,long y,long (*pf)(long,long)) { return pf(x,y); }