C/C++的函数指针

函数指针指向的是函数而非对象,和其他指针一样,函数指针指向某种特定类型,函数的类型由它的返回类型和形参类型共同决定,与函数名无关。

bool LengthCompare(const string &,const string &)

该函数的类型是bool(const string& ,const string&)。想要声明一个指向改函数的指针,只需要用指针特换函数名即可:

bool (*pf)(const string&, const string&);//未初始化

process(fun); // 传址
process(fun()); //传值

double pam (int);
double (*pf) (int); // pf是一个指向函数的指针
注意:pam()的特征标和返回类型必须与pf相同
函数原形:estimate(int lines, double (*pf) (int));
使用: edtimate(50, pam);
使用:double x = pam(4);
double y = (*pf) (5);
c++: double y = pf(5);

例子

#include <stdio.h>
#include <string.h>
#include <stdlib.h>

int maxx(int a, int b)
{
	return a > b ? a : b;
}

int add(int a, int b)
{
	return a + b;
}

int sub(int a, int b)
{
	return a - b;
}

int mul(int a, int b)
{
	return a * b;
}

int dev(int a, int b)
{
	return a / b;
}

int proc(int(*p)(int, int), int a, int b)
{
	int ret = (*p)(a, b);
	return ret;
}
int main()
{
	int num = proc(add, 2, 3);
	printf("add: %d\n", num);

	num = proc(sub, 2, 3);
	printf("sub: %d\n", num);

	num = proc(mul, 2, 3);
	printf("mul: %d\n", num);

	num = proc(dev, 2, 3);
	printf("dev: %d\n", num);

	return 0;

}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

量子孤岛

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值