1、函数指针:指向函数的指针,指针函数,返回值是指针的函数。
函数指针声明举例:
int (*pf)(int &, int &); //pf指向一个函数,该函数参数是两个int类型的引用,返回值是int类型
int TestFun(int &,int &);
pf = TestFun;
调用方式:
int a = 1;int b = 2;
pf(a,b);TestFun(a,b);//两者等价
2、返回函数指针的函数
函数返回指向函数的指针;函数不可以返回一个函数,但是可以返回一个指向函数的指针。
举例说明:
声明函数指针:
using F = int(int *,int);(using 是typedef意义); //F是函数类型不是函数指针
using PF = int(*)(int*,int); //PF是函数指针
使用类型别名:F设置为函数类型, PF设置为函数指针。
声明返回函数指针的函数:
第一种声明方式:
PF f1(int);
F * f1(int);
F f1(int); //错误类型,F是函数类型,不能返回一个函数,应该返回一个函数指针
第二种声明方式:
int (*f1(int))(int *,int);
//以上两种方式相同,函数的返回是一个函数指针f1, 该函数指针指向一个函数(该函数返回值是int,参数列表是 int *,int;),函数列表是 int