美文网首页
c++温故知新3(函数指针)

c++温故知新3(函数指针)

作者: 李相赫的乐芙兰 | 来源:发表于2018-07-16 14:00 被阅读3次

以普通函数为例:

bool Cmp(int a, int b)

声明一个函数指针,只要用指针替换函数名即可

bool (*pf)(int,int)///未初始化

///声明函数或者函数指针时,参数列表中可以只有形参类型,也可以加上形参名

函数指针的赋值

pf = Cmp;

pf = &Cmp;

两者等价,Cmp和&Cmp的值是一样的

调用函数指针

bool b1 = pf(1,2);

bool b2 = (*pf)(1,2);

bool b3 = Cmp(1,2);

这三种写法等价

函数指针作为参数

int GetVal(int a,int b,bool pf(int,int));

int GetVal(int a,int b,bool (*pf)(int,int));

这两种写法等价

GetVal(1,2,Cmp);

GetVal(1,2,&Cmp);///等价

typedef简化

typedef bool(*FuncP)(int,int);

typedef decltype(Cmp) *FuncP2;

这两种写法等价

int GetVal(int a,int b,FuncP pf);

int GetVal(int a,int b,FuncP2 pf);

指针函数

int * GetVal(int a,int b)

返回值是一个int型指针,Getval是函数名,不是变量

简单的区分方式是*有没有被()跟函数名括起来

相关文章

网友评论

      本文标题:c++温故知新3(函数指针)

      本文链接:https://www.haomeiwen.com/subject/bmqbpftx.html