函数指针是指向函数而非指向对象的指针。像其余指针同样,函数指针也指向某个特定的类型。函数类型是由其返回类型及其形参表肯定,而与函数名无关。函数
eg:指针
bool (*pf)(int);将pf声明为指向函数的指针,它所指向的的函数带有一个int类型的形参和bool类型的返回值对象
1,利用typedef简化函数指针的定义it
typedef bool (*cpmFun)(int);引用
该定义表示cmpFun是一种指向函数指针类型的名字。要使用这种函数指针类型是,只须要使用cmpFun便可,不用写完整定义。vi
2,指向函数指针的初始化和赋值
在引用函数名有没有调用该函数是,函数名被自动解释为指向该函数的指针。
初始化:
cmpFun pf1 = 0; //不绑定函数给此函数指针;
cmpFun pf2 = visit; //将符合此类型的visit函数绑定给此函数指针
cmpFun pf3 = &visit //直接引用函数名等效于在函数名上应用取地址操做符
赋值
pf2 = pf1;
3,经过指针调用函数
cmpFun pf = visit;
visit(1);
pf(1); //pf隐式间接调用visit
(*pf)(1); //pf显示间接调用visit