函数指针
函数指针、指针函数一直都是一起出现的内容,但是两者知识名字相似罢了,基本没有什么关联。
指针函数:就是返回值是一个指针的函数,太过简单,我这里就不赘述了。
函数指针:是一个指向函数的指针,这个就有点意思了。听我慢慢道来。
int a[10];
int function(int i,int j);
这是我们定义的一个数组,众所周知,我们可以用数组名"a"来表示这个数组的地址。对于函数呢?我们同样可以用函数名“”“function”来表示函数的地址。那么,我们能不能重新定义一个函数指针来指向这个函数呢?当然是可以的!
int (*ptr_f)(int i,int j);
int* p;
特意将这两句放在一起作对比,第二句是定义了一个指向整形的指针,而第一句就是定义了一个指向形参是(int i,int j)返回值是int,的函数的指针。
p = a;
ptr_f = function;
初始化如上所示。
同样我们可以用typedef来定义对象类型
typedef int (*PTR_F)(int i,int j);
PTR_F ptr_f_1;
下面是一个小例子:
#include<iostream>
using namespace std;
int f_add(int& i,int& j){
return i+j;
}
int main(){