函数指针和指针函数以及函数指针数组

C语言里的函数指针、指针数组和函数指针数组 1.函数指针 函数指针也是一个指针变量,但这个指针存放的是一个函数的地址,以前的函数通过函数名来调用,现在也可以通过指针来调用,运用类比法理解,例如以前的**int p是一个整型变量,是一个指向一个整型数的指针 定义方式: 无参数的:void printwelcome(){} 指针方式:void (*p1)(); p1 = printwelcome;//把函数的名即地址赋给指针** 有参数的:int add(int a,int b){ } 指针方式:int (p2)(int a,int b){ } p2 阅读详情
  1. 问题:一个整型a,根据a的值执行相应的代码  
  2.   
  3. 我的回答是使用switch case  
  4. 面试官说可以这样做,但是还有速度更快的办法,但是他没说是什么办法...只提到了一下指针阿数组什么地,没听清。  
  5.   
  6. 想请教一下,他说的更快的办法是什么办法?  
  7.   
  8. ------------------------------------------------------------------------------------  
  9.   
  10. 关于函数指针数组的定义  
  11.   
  12.   
  13. 关于函数指针数组的定义方法,有两种:一种是标准的方法;一种是蒙骗法。  
  14.   
  15. 第一种,标准方法:  
  16.   
  17. {   
  18. 分析:函数指针数组是一个其元素是函数指针的数组。那么也就是说,此数据结构是是一个数组,且其元素是一个指向函数入口地址的指针。   
  19. 根据分析:首先说明是一个数组:数组名[]   
  20. 其次,要说明其元素的数据类型指针:*数组名[].   
  21. 再次,要明确这每一个数组元素是指向函数入口地址的指针:函数返回值类型 (*数组名[])().请注意,这里为什么要把“*数组名[]”用括号扩起来呢?因为圆括号和数组说明符的优先级是等同的,如果不用圆括号把指针数组说明表达式扩起来,根据圆括号和方括号的结合方向,那么 *数组名[]() 说明的是什么呢?是元素返回值类型为指针的函数数组。有这样的函数数祖吗?不知道。所以必须括起来,以保证数组的每一个元素是指针。  
  22.   
  23. }  
  24.   
  25. 第二种,蒙骗法:  
  26.   
  27. 尽管函数不是变量,但它在内存中仍有其物理地址,该地址能够赋给指针变量。获取函数方法是:用不带有括号和参数的函数名得到。  
  28. 函数名相当于一个指向其函数入口指针常量。 那么既然函数名是一个指针常量,那么就可以对其进行一些相应的处理,如强制类型转换。   
  29. 那么我们就可以把这个地址放在一个整形指针数组中,然后作为函数指针调用即可。  
  30.   
  31.   
  32. 完整例子:  
  33. #include "stdio.h"  
  34. int add1(int a1,int b1);  
  35.   
  36. int add2(int a2,int b2);  
  37.   
  38. int main(int argc,char* argv[])  
  39.   
  40. {  
  41.   
  42. int numa1=1,numb1=2;  
  43.   
  44. int numa2=2,numb2=3;  
  45.   
  46. int (*op[2])(int a,int b);  
  47.   
  48. op[0]=add1;  
  49.   
  50. op[1]=add2;  
  51.   
  52. printf("%d %d\n",op[0](numa1,numb1),op[1](numa2,numb2));  
  53.   
  54. getch();  
  55.   
  56. }  
  57.   
  58. int add1(int a1,int b1)  
  59.   
  60. {  
  61.   
  62. return a1+b1;  
  63.   
  64. }  
  65.   
  66. int add2(int a2,int b2)  
  67.   
  68. {  
  69.   
  70. return a2+b2;  
  71.   
  72. }  
  73.   
  74.   
  75. 再给出常用的C变量的定义方式:  
  76. a) 一个整型数(An integer)   
  77. b) 一个指向整型数的指针(A pointer to an integer)   
  78. c) 一个指向指针的的指针,它指向的指针是指向一个整型数(A pointer to a pointer to an integer)   
  79. d) 一个有10个整型数的数组(An array of 10 integers)   
  80. e) 一个有10个指针的数组,该指针是指向一个整型数的(An array of 10 pointers to integers)   
  81. f) 一个指向有10个整型数数组的指针(A pointer to an array of 10 integers)   
  82. g) 一个指向函数的指针,该函数有一个整型参数并返回一个整型数(A pointer to a function that takes an integer as an argument and returns an integer)   
  83. h) 一个有10个指针的数组,该指针指向一个函数,该函数有一个整型参数并返回一个整型数( An array of ten pointers to functions that take an integer argument and return an  
  84.   
  85. integer )  
  86.   
  87. 答案是:   
  88. a) int a; // An integer   
  89. b) int *a; // A pointer to an integer   
  90. c) int **a; // A pointer to a pointer to an integer   
  91. d) int a[10]; // An array of 10 integers   
  92. e) int *a[10]; // An array of 10 pointers to integers   
  93. f) int (*a)[10]; // A pointer to an array of 10 integers   
  94. g) int (*a)(int); // A pointer to a function a that takes an integer argument and returns an integer   
  95. h) int (*a[10])(int); // An array of 10 pointers to functions that take an integer argument and return an integer  
  96.   
  97.   
  98.   
  99.   
  100. 函数指针数组的妙用  
  101.   
  102.          笔者在开发某软件过程中遇到这样一个问题,前级模块传给我二进制数据,输入参数为 char* buffer和 int length,buffer是数据的首地址,length表示这批数据的长度。数据的特点是:长度不定,类型不定,由第一个字节(buffer[0])标识该数据的类型,共有256(28 )种可能性。我的任务是必须对每一种可能出现的数据类型都要作处理,并且我的模块包含若干个函数,在每个函数里面都要作类似的处理。若按通常做法,会写出如下代码:  
  103.   
  104. void MyFuntion( char* buffer, int length )  
  105. {  
  106.     __int8 nStreamType = buffer[0];  
  107.   
  108.     switch( nStreamType )  
  109.     {  
  110.        case 0:  
  111.            function1();  
  112.            break;  
  113.        case 1:  
  114.        ......  
  115.        case 255:  
  116.            function255();  
  117.            break;  
  118.      }  
  119. }        如果按照这种方法写下去,那么在我的每一个函数里面,都必须作如此多的判断,写出的代码肯定很长,并且每一次处理,都要作许多次判断之后才找到正确的处理函数,代码的执行效率也不高。针对上述问题,我想到了用函数指针数组的方法解决这个问题。  
  120.   
  121.   函数指针的概念,在潭浩强先生的C语言程序设计这本经典的教程中提及过,在大多数情况下我们使用不到,也忽略了它的存在。函数名实际上也是一种指针,指向函数的入口地址,但它又不同于普通的如int*、double*指针,看下面的例子来理解函数指针的概念:  
  122. int funtion( int x, int y );  
  123. void main ( void )  
  124. {  
  125.    int (*fun) ( int x, int y );  
  126.    int a = 10, b = 20;  
  127.    function( a, b );  
  128.    fun = function;  
  129.    (*fun)( a, b );  
  130.     ……  
  131. }  
  132.   语句1定义了一个函数function,其输入为两个整型数,返回也为一个整型数(输入参数和返回值可为其它任何数据类型);语句3定义了一个函数指针,与int*或double*定义指针不同的是,函数指针的定义必须同时指出输入参数,表明这是一个函数指针,并且*fun也必须用一对括号括起来;语句6将函数指针赋值为funtion,前提条件是*fun和function的输入参数和返回值必须保持一致。语句5直接调用函数function(),语句7是调用函数指针,二者等效。  
  133.   
  134.   当然从上述例子看不出函数指针的优点,目的主要是想引出函数指针数组的概念。我们从上面例子可以得知,既然函数名可以通过函数指针加以保存,那们也一定能定义一个数组保存若干个函数名,这就是函数指针数组。正确使用函数指针数组的前提条件是,这若干个需要通过函数指针数组保存的函数必须有相同的输入、输出值。  
  135. 这样,我工作中所面临的问题可以解决如下:  
  136.   
  137. 首先定义256个处理函数(及其实现)。  
  138.   
  139. void funtion0( void );  
  140. ……  
  141. void funtion255(void );  
  142.   
  143. 其次定义函数指针数组,并给数组赋值。  
  144. void (*fun[256])(void);  
  145.   
  146. fun[0] = function0;  
  147. ……  
  148. fun[255] = function();  
  149. 最后,MyFunction()函数可以修改如下:  
  150.   
  151. void MyFuntion( char* buffer, int length )  
  152. {  
  153.     __int8 nStreamType = buffer[0];  
  154.     (*fun[nStreamType])();  
  155. }  
  156.   
  157.   只要2行代码,就完成了256条case语句要做的事,减少了编写代码时工作量,将nStreamType作为数组下标,直接调用函数指针,从代码执行效率上来说,也比case语句高。假如多个函数中均要作如此处理,函数指针数组更能体现出它的优势。  
  158. 函数指针与typedef  
  159. 关于C++中函数指针的使用(包含对typedef用法的讨论)  
  160. (一)简单的函数指针的应用。  
  161. //形式1:返回类型(*函数名)(参数表)  
  162. char (*pFun)(int);  
  163. char glFun(int a){ return;}  
  164. void main()  
  165. {  
  166.     pFun = glFun;  
  167.     (*pFun)(2);  
  168. }  
  169.        第一行定义了一个指针变量pFun。首先我们根据前面提到的“形式1”认识到它是一个指向某种函数的指针,这种函数参数是一个int型,返回值是char类型。只有第一句我们还无法使用这个指针,因为我们还未对它进行赋值。  
  170.       第二行定义了一个函数glFun()。该函数正好是一个以int为参数返回char的函数。我们要从指针的层次上理解函数——函数的函数名实际上就是一个指针,函数名指向该函数的代码在内存中的首地址。  
  171.         然后就是可爱的main()函数了,它的第一句您应该看得懂了——它将函数glFun的地址赋值给变量pFun。main()函数的第二句中“*pFun”显然是取pFun所指向地址的内容,当然也就是取出了函数glFun()的内容,然后给定参数为2。  
  172. (二)使用typedef更直观更方便。  
  173. //形式2:typedef 返回类型(*新类型)(参数表)  
  174. typedef char (*PTRFUN)(int);  
  175. PTRFUN pFun;  
  176. char glFun(int a){ return;}  
  177. void main()  
  178. {  
  179.     pFun = glFun;  
  180.     (*pFun)(2);  
  181. }  
  182.         typedef的功能是定义新的类型。第一句就是定义了一种PTRFUN的类型,并定义这种类型为指向某种函数的指针,这种函数以一个int为参数并返回char类型。后面就可以像使用int,char一样使用PTRFUN了。  
  183.         第二行的代码便使用这个新类型定义了变量pFun,此时就可以像使用形式1一样使用这个变量了。  
  184. (三)在C++类中使用函数指针。  
  185. //形式3:typedef 返回类型(类名::*新类型)(参数表)   
  186. class CA  
  187. {  
  188. public:  
  189.     char lcFun(int a){ return; }  
  190. };  
  191. CA ca;  
  192. typedef char (CA::*PTRFUN)(int);  
  193. PTRFUN pFun;  
  194. void main()  
  195. {  
  196.     pFun = CA::lcFun;  
  197.     ca.(*pFun)(2);  
  198. }  
  199.         在这里,指针的定义与使用都加上了“类限制”或“对象”,用来指明指针指向的函数是哪个类的,这里的类对象也可以是使用new得到的。比如:  
  200. CA *pca = new CA;  
  201. pca->(*pFun)(2);  
  202. delete pca;  
  203.         而且这个类对象指针可以是类内部成员变量,你甚至可以使用this指针。比如:  
  204.         类CA有成员变量PTRFUN m_pfun;  
  205. void CA::lcFun2()  
  206. {   
  207.    (this->*m_pFun)(2);  
  208. }  
  209.          一句话,使用类成员函数指针必须有“->*”或“.*”的调用。在调用动态库时,习惯用typedef重新定义动态库函数中的函数地址(函数指针),如在动态库(test.dll)中有如下函数:  
  210.       int   DoCase(int, long);  
  211.   
  212. 则,在调用动态库是有两种方法:  
  213.   
  214. 1. 先声明一个与动态库中类型一致的指针函数变量:  
  215.   
  216.         int (*DOCASE)(int ,long);//用于指向动态库中的DoCase函数地址  
  217.   
  218.          HINSTANCE gLibMyDLL = NULL;  
  219.   
  220.        gLibMyDLL = LoadLibrary("test.dll");  
  221.   
  222.        if(gLibMyDLL != NULL)  
  223.   
  224.          {  
  225.   
  226.                    //得到函数地址  
  227.   
  228.                      DOCASE = (int(*)(int,long))GetProcAddress(gLibMyDLL, "DoCase");  
  229.   
  230.           }    
  231.   
  232.          //调用函数  
  233.   
  234.          int s = DOCASE(1,1000);  
  235.   
  236.     2.用typedef定义一个指针函数:typedef (*DOCASE)(int ,long);  
  237.   
  238.          HINSTANCE gLibMyDLL = NULL;  
  239.   
  240.         DOCASE _docase;  
  241.   
  242.        gLibMyDLL = LoadLibrary("test.dll");  
  243.   
  244.       if(gLibMyDLL != NULL)  
  245.   
  246.           {  
  247.   
  248.                 _docase = (DOCASE)GetProcAddress(gLibMyDll, "DoCase");  
  249.   
  250.          }  
  251.   
  252.       //调用函数  
  253.   
  254.       int s=_docase(1,1000);  
RM机器人麦轮底盘实战:从零搭建到PID调参全记录(附避坑指南) 本文详细记录了RM机器人麦轮底盘从零搭建到PID调参的全过程,涵盖硬件组装、开发环境搭建、底盘解算和PID调参等关键步骤,并附有实用的避坑指南。特别针对麦轮控制、底盘解算和电机调试等核心问题提供了专业解决方案,帮助开发者快速提升机器人性能。 阅读详情

相关推荐

Windows10下部署Heygem进行数字人生成

对于使用Heygem生成数字人,需要注意几个问题: + 需要使用Nvidia的显卡。 + 需要在Windows上进行本地部署。主要原因为客户端是Windows的,客户端对上传的视频写入硬编码的`D:\heygem_data\voice\data`目录,需要在容器上读取这些文件。 + 需要在Windows上部署Docker,将Windows的目录映射到容器中,由容器中的服务进行读取。 + 需要特别注意,一定要有D盘,这个D盘是Windows的D盘,不能是插入的USB设备后产生的D盘。 + 需要下载3个Doc

冀辉的博客 5620

函数指针和指针函数以及数组指针和指针数组区别

函数指针(指向函数的指针) 与数据项类似,函数也有自己的地址。函数的地址是存储其机器代码的内存的开始地址。例如,可以编写将另一个函数的地址作为参数的函数,这样第一个函数将能够找到第二个函数,并运行它。与直接调用另一个函数相比,这种方法显得很笨重,但它允许在不同的时间传递不同函数的地址,这意味着可以在不同的时间使用不同的函数。 函数指针的用法需要以下三个步骤: 获取函数的地址 声明一个函数指...

一丁的博客 2987

分类模型AUC低于0.5?5个常见坑点排查指南(附代码示例)

本文针对分类模型AUC低于0.5的常见问题,提供了5个关键排查点及代码示例。从样本分布失衡、特征与标签脱节到量纲差异、模型初始化和数据泄露,详细解析了可能导致AUC异常的原因,并给出实用的诊断方法和解决方案,帮助开发者快速提升模型性能。

weixin_29190169的博客 240

C语言进阶:指针进阶(数组参数和指针参数、函数指针和函数指针数组)

C语言进阶,介绍数组参数和指针参数、函数指针和函数指针数组的内容

2501_91709575的博客 3250

从3dB定向耦合器到双圆极化天线:在HFSS里玩转相位差90°的馈电艺术

本文详细介绍了在HFSS中设计3dB定向耦合器与双圆极化天线的关键技术,重点解析了90°相位差生成原理及馈电网络设计。通过HFSS仿真工具,实现从定向耦合器到完整天线系统的集成,优化阵列天线性能,适用于卫星通信和雷达系统。

weixin_33717117的博客 556

SAP VC 可配置物料超级BOM简介

在有些业务中比如:汽车、笔记本、电脑、电梯等产品中,其中组成产品的型号个框架是确认的 ,但是框架内部的BOM是可变的,在客户下销售订单的时候,选取对应的组件 ,让后通过MRP的计算优生产线对这样的销售订单提供生产。这个时候我们需要选择我们需要的内存和硬盘的型号,还记得我们前面创建的特征值对应的吗,A对应的8G、B对应16G、X对应1T硬盘、Y对应2T硬盘,这里我们填写对应的值,我们这里选择16G的内存和2T的硬盘,B和Y。3、当我们选择了可配置物料的生产模式时,基本上就选择了按单生产的生产模式了。

我小时候很黑的博客 1万+

函数指针和函数指针数组

函数指针:指向函数的指针。 函数指针数组:一个数组里面存的类型是函数指针。 一、函数指针的声明和调用 1.指针声明: 函数指针顾名思义就是一个指向函数的指针。 int Add(int x,int y) { return x+y; } char* Sub(char*) { } //声明函数指针并初始化 int (*Add)(int ,int ) ptr=&Add; char* (*Sub)(char*) prt_char=⋐ 这里声明了两个函数指针.

weixin_45423515的博客 8822

17 指挥AI写Mamba相关模型代码,快速适配大模型场景

本文为《30天掌控AI编程:从指令到落地,手把手教你指挥AI写代码》系列第十七篇,属于第三阶段多场景实战核心内容。本篇聚焦当下大模型领域热门的**Mamba架构**,针对零基础大模型开发、无深度学习基础的使用者,拆解指挥AI生成Mamba基础模型、微调适配、推理部署代码的核心方法,覆盖Mamba基础模块搭建、简易序列建模、小样本微调、本地推理等高频场景,提供可直接复用的高质量指令模板、完整可运行代码、环境配置与避坑指南,无需精通Transformer、状态空间模型等底层原理,轻松上手Mamba大模型开发。

coreopt的博客 61

指针进阶之函数指针和函数指针数组

指针进阶之函数指针和函数指针数组,想学的进来

人生得意须尽欢 590

【保姆级教程】教你如何轻松获取MIMIC数据使用权限

文章非常详细地介绍了MIMIC数据库申请使用的全部步骤。

越努力 越幸运 6600

044、手持视频抖动严重?OpenCV 光流 + IMU 融合的电子防抖工程方案

本文探讨了基于OpenCV光流和IMU融合的手持视频电子防抖方案。作者从实际工程经验出发,分析了纯光流和纯IMU方案的局限性,指出时间戳对齐和坐标系标定是关键挑战。文章详细介绍了融合滤波器的实现方法,推荐互补滤波替代卡尔曼滤波,并提出了动态调整融合系数的策略。在光流算法优化方面,建议采用网格化FAST特征点和前后向误差检测。最后分享了运动补偿裁剪策略和多线程流水线设计,强调在嵌入式设备上使用NEON指令优化性能。该方案通过精确的时间同步和传感器融合,有效解决了手持拍摄中的高频抖动问题。

ai技术增长的博客 251

C和C++,函数指针,指针函数,函数指针数组

这就是一个简单的指针函数的定义语法。运行结果如下:这是只是一个简单的例子,但是值得注意的我在指针函数里面加了,这样该变量的生命周期也就和全局的变量的生命周期一致了,也就是只有当整体全部程序运行结束的时候该变量才会被销毁,如果不加关键字,那么该变量,会在函数执行完毕时就被销毁掉,就不能接受到返回地址,返回的会是一个乱码。同样的运行方式得到的结果:可以看到两者之间明显的区别。

YYYYYYJJJJJYYYYY的博客 1892

ROS入门教程(七)—— Gazebo与RViz联合仿真

通过Gazebo与RViz联合仿真实现机器人运动。

吾门的博客 1万+

数组指针、指针数组、函数指针和函数指针数组

数组指针、指针数组、函数指针和函数指针数组

awaitxm的博客 2164

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

指针函数和函数指针 函数指针数组 回调函数

我们经常使用的函数定义的方式是(类型名 标识符 (形参列表) {函数体})指针函数的定义其实也并无不同,我们定义的方式也是(类型名 标识符 (形参列表) {函数体})只不过使用的是指针类型。int* ret(int x,int y) {} 或者 int *ret(int x,int y) {}怎么去写看个人习惯,并无区别。这么看来其实也是比较简单,和普通函数的定义并没有什么大的区别,也就是多了一个* ,仅此而已。

C++领域内容分享 389

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

C语言——函数指针和函数指针数组

函数指针是指向函数的指针变量,它可以用来存储和调用函数的地址。回调函数:函数指针可以作为参数传递给其他函数,使得被调用的函数能够在特定条件或事件发生时,调用传入的函数指针进行回调操作。这样可以实现函数之间的灵活交互和扩展,常见于事件处理、消息传递等场景。函数指针数组:可以使用函数指针数组来实现多态性或动态分派。通过在数组中存储不同的函数指针,并根据需要调用其中的函数,可以在运行时决定调用哪个函数,从而实现动态切换功能。函数指针作为返回值。

qq_51504544的博客 942

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

C语言函数指针和函数指针数组

函数名和函数名本质上都是函数的地址。

zwznzje的博客 461

浅谈C语言数组指针和函数指针

记录C语言小白的学习历程 数组指针 函数指针

2402_86037826的博客 1064

函数指针和指针函数、数组指针和指针数组的区别

前言 当了解过函数指针和指针函数、数组指针和指针数组后,只要隔了段时间又会搞混,每次都得再去查,这次索性自己写个加深印象。 函数指针 函数指针,其本质是一个指针变量,该指针指向这个函数。总结来说,函数指针就是指向函数的指针。 声明格式:类型说明符 (*函数名) (参数) 如下: int (*fun)(int x,int y); ...

weixin_44234294的博客 684

函数指针数组 和 函数指针数组的指针

函数指针数组 char * (*pf)(char * p) 定义的是一个函数指针pf,既然pf 是一个指针,那就可以储存在一个数组里: char * (*pf[3]) (char * p); (*pf[3]) 是一个指针素组, (*pf[3]) (char * p)数组内有3 个指向函数的 指针,char * (*pf[3]) (char * p) 函数指针指向函数返回的是 char* 类型。 #include <stdio.h> #include <string.h...

l3142600073的博客 525

对C中转移表(函数指针数组)和 指向函数指针数组的指针(函数指针数组指针)的一些理解

1.转移表(函数指针数组) 2.指向函数指针数组的指针(函数指针数组指针)

爱上小公举 376

【指针的进阶(2)】——函数指针和函数指针数组

继上一章【指针的进阶(1)】,继续完善第二章内容。本章对函数指针和函数指针数组进行了详细地讲解。

2301_76496134的博客 452

函数指针、指针函数、指针数组和数组指针区别

首先知道一点不管是指针函数,还是函数指针,我们只需要关注最后面了两个字,然后知道其中的用法就行。 一、 函数指针是指向函数的指针变量,因此本身就是指针。 定义:指针变量可指向整型变量、字符型、数组一样,这里是指向函数。C在编译时,每一个函数都有一个入口地址,该入口地址就是函数指针所指向的地址。 格式: 函数指针的声明方法为: 返回值类型 ( * 指针变量名) ([形参列表]); linux驱动 file_operations 中int (*open) (struct inode *, struct file

weixin_45571586的博客 2637

二级指针,数组指针,指针数组和函数指针

二级指针,数组指针,指针数组和函数指针

iccoke的博客 767

数组指针,函数指针,函数指针数组理解(转移表和回调函数例子)

1.数组指针 数组指针,指的是数组名的指针,即数组首元素地址的指针。即是指向数组的指针。例:int (*p)[10]; p即为指向数组的指针,又称数组指针。 其实他本质上是指针,只不过它当做指针加一是越过整个数组。 2.函数指针和定义 函数指针是指向函数的指针变量。 因此“函数指针”本身首先应是指针变量,只不过该指针变量指向函数。这正如用指针变量可指向整型变量、字符型、数组一样,这里是指向函数。如...

qq_45075338的博客 453

函数指针,指针函数和函数指针数组

【代码】函数指针,指针函数和函数指针数组。

weixin_58038206的博客 359
上一篇: 函数指针数组的妙用
下一篇: 指向类成员的指针
linuxheik
博客等级 码龄15年 865粉丝 135原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值