函数的地址是存储其及其语言代码的内存的开始地址。可以编写将另一个函数的地址作为参数的函数,这样第一个函数能够找到第二个函数并运行它,与直接调用另一个函数相比,这种方法很笨拙。但它允许在不同的时间传递不同函数的地址,这意味着可以在不同的时间使用不同的函数。
获取函数的地址很简单:只要使用函数名(后面不跟参数)即可。
process(think);//传递think()函数的地址。
process(think());//传递think()函数的返回值。
声明函数指针时,需要指定指针指向的函数类型、返回类型和参数列表。
如:double (*pf)(int);
*pf是函数,pf是函数指针。
赋值:
double pam(int);
double (*pf)(int);
pf=pam;
其中,pam()和(*pf)的参数列表和返回类型必须相同。
使用:
void estimate(int lines,double (*pf)(int));//函数原型声明
estimate(50,pam);//pam为函数地址。