C++函数指针

C++函数指针

与数据项相似,C++函数也有对应的内存地址。函数地址是存储其机器语言代码的内存的开始地址。所以我们可以编写将另一个函数的地址作为参数的函数,这样第一个函数就能找到第二个函数并执行它。

1.获取函数的地址

获取函数地址的方式很简单,只要使用函数名即可。假设funcA()是一个函数,funcA就是该函数的地址。要将函数作为参数传递,必须传递函数名:

void test(funcA)
{
   
	.....
}

2.声明函数指针

声明指向函数的指针时,必须指定指针指向的函数类型。也就是说声明应指定函数的返回类型以及函数的特征标(参数列表)。
函数原型

int sum(int a,int b);

指针类型声明如下

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

将sum替换为(*psum),由于sum是函数,所以(*pf)也是函数,则pf就是函数指针。(通常要声明指向特定类型的函数指针,可以首先编写该函数的原型,然后用(*pf)替换函数名。这样pf就是这类函数的指针)。

必须在声明中用括号将pf扩起来,应为括号的优先级比运算符高,因此*pf(int a,int b)意味着pf()是一个返回指针的函数,而(*pf)(int a,int b)代表pf是一个指向函数的指针。
正确声明pf后,便可将相应的函数地址赋给它。

int sum(int a,int b);
int (*pf)(int a,
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值