首页 > 其他分享 >一.介绍函数指针数组 二.函数指针数组的使用

一.介绍函数指针数组 二.函数指针数组的使用

时间:2024-10-18 23:47:38浏览次数:3  
标签:下标 函数 介绍 按位 数组 函数指针 我们

我们先来看这个0489f3e5638b448c941ba68114fffb97.png

这里面的四个函数都分别存放在函数指针变量中,而且这些函数的指针类型都一模一样

那我们就可以搞出一个函数指针数组,来存放这些函数的地址 

函数指针数组的写法从函数指针的基础上去写是最容易的

想让他成为数组,我们可以在变量p后面加一个[],p就和[]结合了,就说明是数组了

就像这样c6f46199c1774ef2bd72e212f17060df.png

 这样的数组可以存放多个同类型的函数指针的地址

我们可以通过函数指针数组的下标,调用这些函数

类似这样0edad8b9d10742cc816dfbe5ab73303b.png

 

对于函数指针数组的使用,我们通过下列代码了解3366011a3bd24265994336f88a9cbebb.png

这是一个模拟计算器的函数 ,但如果我们要算两个整数数的按位与,两个正数的按位或,两个整数的按位异或,左移,右移,等等运算的时候,我们这个菜单和函数都要扩充,而那个switch  case语句会越来越长

这个时候就要用到我们的函数指针数组来简单化

下面是代码的实现524cbb18c0784cf1801d5b8082ec9b47.png

 

(我们要注意函数指针数组里面这个0的补充,是为了让下标和函数对应的数组一一对应起来,让代码的可读性变高)

现在代码的扩招就比较容易了,补充一下函数,然后在对应的下标放入函数的地址,最后改一下if语句的范围就行,主函数并不会变长

此时此刻我们就通过数组的方式,把这些函数的地址全都管理起来,通过下标来找到函数,然后去调用它

这个函数指针数组(有一种跳转的效果)我们一般叫做转移表

 

 

 

标签:下标,函数,介绍,按位,数组,函数指针,我们
From: https://blog.csdn.net/2401_87284659/article/details/143062138

相关文章

  • 【AI学习】Mamba学习(七):HiPPO通用框架介绍
    HiPPO这篇论文《HiPPO:RecurrentMemorywithOptimalPolynomialProjections》,提出了一个通用框架。我们再重新看一下论文的摘要:从连续数据中学习的一个核心问题是,随着更多数据的处理,以增量方式表示累积历史。我们介绍了一个通用框架(HiPPO),用于通过投影到多项式基上对连......
  • IO流读写文件(字节流(单个字节,字节数组),字节缓冲流(..),字符流(..),字符缓冲流(..))
    IO流【输入输出流】:按照流向划分:输入流:外部数据->java程序输出流:java程序->外部数据按照数据类型划分【根据使用记事本打开是否能够看懂来决定】:字节流【万能流】:字节输出流:......
  • 3dsMax:3dsMax基础操作与界面介绍_2024-07-15_15-24-33.Tex
    3dsMax:3dsMax基础操作与界面介绍一、3dsMax简介1.13dsMax的历史与发展3dsMax,原名3DStudioMax,是由Autodesk公司开发的一款基于PC的三维动画渲染和建模软件。它的历史可以追溯到1990年代初,当时由YostGroup开发的3DStudio系列软件在DOS平台上首次亮相,随后在Window......
  • 广义表介绍
    广义表(GeneralizedList,又称列表)是一种非连续性的数据结构,是线性表的一种推广。以下是对广义表的详细解释:一、定义与特点定义:广义表是由零个或多个数据元素组成的有限序列,其中每个数据元素既可以是原子(即不可再分的数据项),也可以是另一个广义表(即子表)。特点:广义表的元素可......
  • ArkUI(方舟UI框架)介绍
    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(MaoistLearning)➤博客园地址:为敢技术(https://www.cnblogs.com/strengthen/ )➤GitHub地址:https://github.com/strengthen➤原文地址:https://www.cnblogs.com/strengthen/p/......
  • 交错数组 二维数组 参数
    internalclassProgram{staticvoidMain(string[]args){int[,]arr=CreateArr();//int[,]arr1={{1,2},{2,3}};二维数组中不能使用new关键字//int[][]arr2={newint[]{}};交错数组......
  • c#数组案例(较复杂)两个数组合并、去重和取交集
    usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespace_01_数组{internalclassProgram{staticvoidMain(string[]args){//1.合并两个数组......
  • 【芯智雲城】Boradcom(博通) 多领域技术解决方案介绍
    BroadcomInc.是一家全球领先的技术企业,业务范围囊括多种半导体、企业用软件和安全解决方案的设计、开发和供应。Broadcom的类别领先产品组合在许多重要的市场中发挥作用,其中包括云、数据中心、网络、带宽、无线技术、存储,以及工业和企业用软件。我们的解决方案包括服务提供......
  • while循环和do循环、缓冲区、一维数组
    缓冲区输入缓冲区从键盘得到数据的时候用户输入的数据首先进入输入缓冲区,然后程序从输入缓冲区里获得数字,先进入输入缓冲区的数据必须先处理(类似排队),如果先进入输入缓冲区的数据无法处理,程序就得不到后进入输入缓冲区的数据。使用以下两条固定语句可以删除输入缓冲区里的无效数......
  • 10093-基于STM32的无线串口小型直流电机调速器设计(仿真+原理图+源代码工程+详细介绍说
    10093-基于STM32的无线串口小型直流电机调速器设计(仿真+原理图+源代码工程+详细介绍说明书+proteus)功能描述:直流电机的调速器设计设计,需要设计一个调速与控制系统,是设备可以直接控制和读取信息,并且显示。①设计直流电机转速控制系统;②通过按键调节直流电机转速;③可以在......