声明指向某种数据类型的指针时,必须指定指针指向的类型。同样,声明指向函数的指针时,也必须指定指针指向的函数类型。这意味着声明应指定函数的返回类型以及函数的特征标(参数列表)。也就是说,声明应像函数原型那样指出有关函数的信息。
——《C++ Primer Plus》第6版-函数指针
若函数原型为:double pam(int);
则正确的指针类型声明如下: double (*pf)(int);
这与pam()声明类似,这是将pam替换为了(*pf)。由于pam是函数,因此(*pf)也是函数。而如果(*pf)是函数,则pf就是函数指针。
正确地声明pf后,便可以将相应函数的地址赋给它:
double pam(int);
double (*pf)(int);
pf=pam;
假设要将将要编写的代码行数和估算算法(如pam()函数)的地址传递给它,则其原型将如下: