引入函数指针能让一个函数在不同时间使用不同的函数(调用的函数接口相同)。
基础知识
函数名表示函数地址
p(think)//参数为think()的地址
thought(think())//参数为think()的返回值
声明函数指针仅需将函数原型中的函数名替换为(*指针名),若无括号则被声明为返回值为指针的函数。
double pam(int);//函数原型
double (*pf)(int);//对应的函数指针类型
注意:为函数指针赋值或是将函数指针传递给函数时一定要保证函数指针的特征标(参数列表)及返回类型要和对应函数的完全一致。
void esitimate(int l,double (*pf)(int));
//表示函数需要一个函数指针
//它指向的函数接受一个int参数,并返回一个double值。
调用函数指针指向函数有两种方式
double pam(int);
double (*pf)(int);
of=pam;
double x=pam(4);//一般函数调用
double y=(*pf)(5);//第一种
double y=pf(5);//第二种