函数指针:
函数指针必须包含要调用的函数的内存地址,为了工作正确,指针还必须包含其他信息,即指针所指向的函数的参数列表中的参数类型以及返回类型。因此,在声明函数指针时,必须指定该指针可以指向的函数的参数类型和返回类型,以及指针名。
函数指针的一般形式如下:
返回类型(*指针明名)(参数类型列表);
注意:指针名上的括号是必不可少的,否则*就会与返回类型结合,就成了一个函数原型了。
示例:
#include <iostream> using std::cout; using std::endl; //函数声明 long sum(long a,long b); long product(long a,long b); int main(int argc,char* argv[]){ //函数指针声明 long (*pfun)(long ,long)=0; //指向product函数 pfun=product; cout<<endl<<"4*6="<<pfun(4,6); //指向sum函数 pfun=sum; cout<<endl<<"4+6="<<pfun(4,6)<<endl; return 0; } long product(long a,long b){ return a*b; } long sum(long a,long b){ return a+b; }