当前位置: 首页 > news >正文

指针 (六)

OK,书接上回,咱们继续:

一 . 函数指针变量

(1)函数指针变量的创建

首先我们得明白,什么是函数指针变量呢?从我们之前学习过的整型指针,数组指针的相关知识当中,通过类比推理,我们不难得出:函数指针变量就是用来存放函数地址的,而未来当我们需要时,就可以通过存放的这个地址我们就可以调用该函数

那么函数的地址是什么呢?我们多说无益,直接实践得出结论:

由此可见,我们的函数是的的确确有地址的,并且其性质可以说跟我们的数组一样,函数的地址也就等同于函数名

既然函数也有地址,那我们怎样将它的地址存起来呢?当然是指针咯,这就是我们函数指针变量的意义,函数指针变量的写法跟数组指针非常类似,格式如下:

(2)函数指针变量的使用

我们明白了函数指针变量是用来存放函数地址的,那么函数指针的使用就很明了了嘛,就是通过函数指针调用指针指向的函数:

二 . typedef 关键字

typedef 是用来对类型重命名的,诸君可以想一想,我们什么时候需要对类型进行重命名呢?当我们的一个函数指针类型非常冗长、复杂,且我们还需要反复调用时,我们是不是就可以对这个函数指针类型进行一个重命名,将其简化呢?这就是 typedef 的作用及意义,格式如下:

上图是普通类型的重命名,指针类型同样适用

那我们对于数组指针类型的重命名呢?

有图可知,我们经过上面的几个例子,习惯性的将新类型名放在最后,其实我们仔细观察可以发现,新名字应该是紧接着 * 后面的,VS 也报错并给我们提示了,正确格式是:

三 . 函数指针数组

之前我们了解过指针数组,例如:

那么函数指针数组又是什么呢?就是把函数的地址储存到这个数组当中,其格式如下:

四 . 转移表

我们这里先写一个一般情况下实现加、减、乘、除的计算器:

这样子简单,但是很低端,不够高级昂,太繁琐,我们的 case 语句所占篇幅太多且重复,那我们怎么办呢?相信聪明的诸君已经想到了解决方案,学以致用昂,运用我们刚刚学习到的函数指针数组,将每个分支的函数以数组的形式放在我们的一个指针当中,需要调用的时候就通过地址直接调用:

这就是我们函数指针数组的灵活运用,诸君看懂了么?

OKK,今天有关指针的部分咱们就说到这儿,欲知后事如何,且听下回分解,咱们下期再见咯,加油加油,与诸君共勉!!!

http://www.lryc.cn/news/440607.html

相关文章:

  • Linux下vscode配置C++和python编译调试环境
  • OrionX GPU算力池助力AI OCR场景应用
  • 移动端如何实现智能语音交互
  • HTTPS:构建安全通信的基石
  • OceanBase 企业版OMS 4.2.3的使用
  • STM32中的计时与延时
  • [论文笔记] CSFCN
  • mac电脑命令行获取电量
  • 2024桥梁科技两江论坛——第二届桥梁工程安全与韧性学术会议
  • 性能测试-jmeter的控制器(十六)
  • 直播开播极速流,如何有效接入?
  • stm32 W25Q数据存储
  • 深度学习的笔记
  • 音视频入门基础:AAC专题(8)——FFmpeg源码中计算AAC裸流AVStream的time_base的实现
  • React 组件的基本使用,useState 状态变量的使用
  • 空洞骑士 Hollow Knight 攻略
  • CSP-J 算法基础 广度优先搜索BFS
  • What is new in C# 7,8,9,10
  • Sqlserver常用sql
  • 基于SpringBoot+Vue+MySQL的考研互助交流平台
  • chatgpt个人版ssrf漏洞
  • 如何查看微信聊天记录?四种实用方法查询微信聊天记录,赶快码住!
  • 钢材表面缺陷数据集以coco格式做好了数据集的划分,1200张训练集,600张验证集,对应的json文件也在里面
  • 【Lua坑】Lua协程coroutine无法正常完整执行问题
  • istio中serviceentry结合egressgateway的使用
  • 使用 Python 实现 Windows 应用图标的便捷生成:一站式 PNG 转 ICO 工具20240918
  • 编程环境常用命令合集
  • Qt Creator 集成开发环境 常见问题
  • 使用Faiss进行K-Means聚类
  • 通过hosts.allow和hosts.deny限制用户登录