函数指针的基础知识
在C++中运用函数指针首先要完成的工作:
- 获取函数的地址
- 声明一个函数指针
- 使用函数指针来调用函数、
1. 首先是获取函数的指针
获取函数的地址就是使用函数名即可,不用跟参数,比如think( )是一个函数,那么think就是该函数的地址,而think()则是该函数的返回值。因此要注意区分传递的是函数的地址还是函数的返回值。
2. 声明函数指针
声明只想某种数据类型的指针时,必须指定指针指向的类型。同样在声明指向函数的指针时,也必须指定指针指向的函数类型。这意味着声明应指定函数的返回类型以及函数的参数列表,也就是说声明应像函数原型那样指出有关函数的信息。比如:
double pam(int); //prorotype
则正确的指针类型声明如下:
double (*pf)(int); //pf point a function that takes
//ont int argument and that return type double
与pam函数生命类似,这是将pam替换为了(*pf).由于pam是函数,因此(*pf)也是函数,而如果(*pf)是函数,那么pf就是函数指针。为了正确的表示函数指针,应该在声明中使用括号将*pf括起来。括号的优先级比*要高,因此*pf(int)意味着pf()是一个返回指