c++函数指针使用

这篇博客详细介绍了C++中的函数指针,包括定义、赋值、调用方式,以及作为函数参数和返回值的使用。通过实例解析了如何理解和编写返回函数指针的函数声明,并建议使用typedef提升代码可读性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

可能在学校的学习中我们很少使用到函数指针,使用到的地方可能就是在api函数传递回调函数的地方使用到了,不是很熟悉,学习总结下

1.定义:

指向某种函数类型的指针(函数类型由返回值和形参确定)

2.格式:

函数返回类型 (*函数指针名) (形参列表);

例如:

int (*pMax)(int a,int b);

 

3.赋值:
1>直接赋值:

int Max(int a, int b);
int (*pMax)(int a, int b);
pMax = Max;


 

2>取值赋值:

int Max(int a, int b);
int (*pMax)(int a, int b);
pMax = &Max;


 

4.调用

1>直接调用

int Max(int a, int b);
int (*pMax)(int a, int b);

void main()
{
  pMax = &Max;
  int c = pMax(5, 4);
  cout<<c<<endl;
}



2>用解应用操作符:(解引用操作符与函数指针名必须用括号框起来)

int Max(int a, int b);
int (*pMax)(int a, int b);

void main()
{
  pMax = &Max;
  int c = (*pMax)(5, 4);//注意此处解引用操作符与函数指针名必须用括号括起
  cout<<c<<endl;
}


 

5.函数指针做形参:

格式:

  返回值 函数名(参数1,参数2,..,函数返回值 (*函数指针名)(参数列表));

bool ChangIf(int &a, int &b, int (*pMax)(int a, int b));


 

6.返回函数指针:

  看返回值为函数指针的函数声明估计要郁闷死,但是如果我们掌握技巧并且足够细心,那么看懂不是问题
  写或者读返回函数指针的函数声明应该是由内而外

  举个例子吧:写一个返回值类型为max函数类型指针的函数
  1>写函数名,函数参数表

Test()



  2>在函数名前加*,并用括号将现在写好的内容括起来(这里的括号是必须的)

(*Test())



  3>在括号前面写函数指针返回类型,在括号后面写函数指针参数表

int (*Test())(int a, int b);


 

注:

  1>用typedef先定义函数指针或者函数别名,再将这个名字用来做参数或者返回值,或者定义指针变量这样显得易懂些, 可以提高程序的可读性
  2>用typedef定义函数别名,在写函数定义时这个名字可以直接用来做函数的参数,但是这个名字不能直接用来做函数返回值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值