指向函数的指针变量

#include <iostream>
 
using namespace std;
 

一、为什么要有函数指针?

 

       函数与数据项相似,函数也有地址。我们希望在同一个函数中通过使用相同的形参在不同的时间使用产生不同的效果。

二、怎么声明一个函数指针?


       我们知道:声明指向某种数据类型的指针时,必须指定指针指向的类型。

       所以,我们声明指向函数的指针时,也必须指定指针指向的函数的类型。意味着我们必须在声明中包括函数的返回值类型与参数列表。下面是一个声明举例:

       函数:double  average(int , int );

       函数指针声明:double (*pa) (int , int );      //函数指针变量是pa

       注意:通过上例我们可以发现:要声明指向指定类型的函数的指针,可以首先编写这种函数的原型(函数声明),然后用(*pa)替代函数名。这样pa就是这类函数的指针。
 

void EatMeat(int num)
{
    cout << "我吃了 " << num << " 片肉\n" << endl;
}
 
void DrinkWater(int num)
{
    cout << "我喝了 " << num << " 杯水\n" << endl;
}
 
void DoSomething(void(*pa)(int), int num)
{
    cout << "我要做一些事情:   " ;
 
    (*pa)(num);   //使用函数指针调用函数
}
int main(void)
{
    void(*pa)(int);    //声明一个指向返回值为void,参数为int的函数的指针
 
    pa = EatMeat;   //先吃肉
    DoSomething(pa, 1);    //吃一片肉
 
    pa = DrinkWater;  //再喝水
    DoSomething(pa, 10);    //喝十杯水
 
    return 0;
}
————————————————
版权声明:本文为CSDN博主「迷雾江湖」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/SunXiWang/article/details/78591557

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值