1、函数指针

定义“函数地址”:

如果在程序中定义了一个函数,在编译时,编译系统为函数代码分配一段存储空间,这段存储空间的起始地址(又称入口地址)称为这个函数的指针。

函数名就是地址,跟以前说的数组名代表地址一样。

(    int (*p)[4]    这是一个数组指针,原因是中括号的优先级 高于*的)

之前我们都这样写

可以改动一下

函数指针也讲究类型

下面就是把函数原型copy 过来  ,把函数名字改成p2,其他东西保留,这样才能让p2 指向这个函数

函数指针的好用之处

2、使用函数指针实现 练习题

第21行调用哪个函数,是根据用户输入的cmd值

*pfunc 就是在调函数啦

上面函数的第18 行可以配合着线程理解

int getMax(int data1,int data2)

int getMin(int data1,int data2)

int getSum(int data1,int data2)

他们的函数原型长得一样 ,所以可以共用一个指针

根据用户的输入确定pfunc 是什么值

再调用dataHandler 把两个操作数以及操作的算法传过来

cmd 是操作指令,用户输入完操作指令。输入完操作指令以后,去调用dataHandler,dataHandler之前,我们根据用户的输入指令,已经指定了这个函数指针到底是要执行什么样的运算法则,当dataHandler调用的时候运算法则有了 ,操作数也有了。

结果如下

(补充)


上面第三个是个函数指针

形参列表强调的是函数的类型,可以把参数名去掉

包括函数指针在定义的时候

之所以在这里面要写data1,data2,是因为我们要用到这个名字,

如果用不到这个名字,后面的变量就无所谓

我们强调的是形参当中是什么类型的数据,类型很重要,变量名不重要,名字是地址的一个访问方式

需要内存空间就得有名    ,后面没有用data1 和data2 ,因为后面是假的  操作真正的数据的是前面的data1 和 data2

函数指针,以及用函数指针的好用之处(回调函数)相关推荐

  1. python回调函数实例详解_python 简单的例子下详解回调函数

    回调的英文定义: A callback is a function that is passed as an argument to another function and is executed ...

  2. 【Android 高性能音频】AAudio 音频流 PCM 采样 的 采样 缓冲 播放 的 连续机制 ( 数据回调机制 | 数据回调函数指针 | 实现数据回调函数 | 设置数据回调函数 )

    文章目录 I . AAudio 音频流 采样 缓冲 播放 的连续机制 II . AAudio 音频流 数据回调函数 函数指针类型定义 III . AAudio 音频流 数据回调函数 实现 IV . A ...

  3. C++函数指针与回调函数

    [转自]cnblogs.com/chenyuming507950417/archive/2012/01/02/2310114.html 今天讨论下C/C++中的回调函数. 在理解"回调函数& ...

  4. Linux C 函数指针应用---回调函数

    (这里引用了知乎上一些知友的回答,感觉不错,有助于理解,这里引用作为借鉴,如有冒犯,烦请告知) 我们先来回顾一下函数指针,函数指针是专门用来存放函数地址的指针,函数地址是一个函数的入口地址,函数名代表 ...

  5. C/C++函数指针与回调函数总结(函数指针数组)

    函数有它的地址,程序运行起来了,程序里肯定有地方要放这个函数.我们知道可以用printf  %p来输出一个变量的地址,数组的地址,同样我们定义了一个函数后,用这个函数的名字做输出,就可以得到这个函数的 ...

  6. C++之指针探究(十四):回调函数

    相关博文:C++之指针探究(十三):函数指针数组 相关博文:C++之指针探究(十二):指针.下标.数组及其作函数参数探究 相关博文:C++之指针探究(十一):函数名的本质和函数指针 相关博文:C++之 ...

  7. 网络编程之 信号捕捉器(函数指针与回调函数)

    接着我们的信号说下去      之前博主给大家分享到了信号的概念和初步介绍signal函数的形式后就没有继续往下介绍了,实在是因为时间不够,那个时候博主还要上课,现在博主放假了就好好给大家分享一下如何 ...

  8. Linux C 函数指针应用---回调函数

    (这里引用了知乎上一些知友的回答,感觉不错,有助于理解,这里引用作为借鉴,如有冒犯,烦请告知) 我们先来回顾一下函数指针,函数指针是专门用来存放函数地址的指针,函数地址是一个函数的入口地址,函数名代表 ...

  9. 函数指针实现回调函数

    首先说明是函数指针,函数指针,就是一个函数,将其函数名指针化,通过传入指针调用不同的函数 手撸代码一次 #include<stdio.h> void max(int a,int b) { ...

最新文章

  1. Ubuntu15.04安装IPSec/L2TP
  2. JQuery 中有用的方法
  3. AOM联盟:AV1完成1.0版定稿
  4. .NET 6 新特性 PeriodicTimer
  5. [转载]理解OAuth 2.0
  6. 从当前文件夹以及子文件夹中,批量移动指定名字的文件
  7. Java中反射性能测试
  8. pom.xml mvn package expected START_TAG or END_TAG not TEXT
  9. AOJ-754 数根
  10. mysql触发器新增或修改_mysql触发器实例 插入数据前更改数据值
  11. [远程桌面]程mstsc连接Windows Server2008 未安装任何音频输出设备 启用声音音频解决
  12. 弹性均质圆环法计算过程_盾构隧道衬砌结构内力计算方法的对比浅析
  13. Latex语法学习05:代码表格的制作
  14. JAVA随机生成中文姓名,性别,Email,手机号,住址
  15. 通过MapReduce统计PV和UV
  16. 基于嵌入式Linux的MP3播放器的设计与实现
  17. 大数据高频面试题总结
  18. Vue视频流播放器 Vue-Core-Video-Player
  19. 电脑端使用文件微信聊天记录的本机/新机备份迁移
  20. matlab基础及应用 李国朝,Matlab基础与应用(李晓鹏)

热门文章

  1. C语言中 void* 详解及应用
  2. 【DIY】DIYarduino温湿度计视频图文教程
  3. 【MATLAB教程案例1】通信系统中成形滤波器原理的MATLAB设计实现
  4. 车牌识别系统,并语音读出识别结果,MATLAB仿真
  5. 基于SNN脉冲神经网络的FPGA实现介绍
  6. 计算机网络·物理层练习题
  7. Centos5, 6下更改系统时间和时区
  8. 使用 IIS Manager 对 Windows Azure 网站进行远程管理
  9. Ubuntu共享WiFi(AP)给Android方法
  10. 科技日报头版显要位置报道国内多家企业投融资给力永中软件