三种函数指针的表达以及函数指针概念讲解

  • 函数指针的概念
  • 三种表达函数指针的方法

函数指针的概念

如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针

三种表达函数指针的方法

接下来通过简单加法运算函数:int add(int a,int b)来演示其对应的函数指针类型来接收其函数地址,实现同样的功能。
1、声明函数类型
typedef int(typeFunc)(int,int)
【注】其中的typeFunc表示的是某种类型的函数
看待该表达式的个人理解:因为()的运算符优先级高,因此该表达式可以写成typedef (typeFunc) int(int,int)来理解。
表示p是函数返回值为int类型,参数为 (int,int)的函数类型。
函数指针变量表达:typeFunc *p;

#include<iostream>
using namespace std;
int add(int a,int b)
{return a+b;
}
typedef int (typeFunc)(int,int);
int main()
{typeFunc *p;p = add;p(1,2);return 0;
}

2、声明函数指针类型
借鉴1中所表示的函数类型的声明,函数指针类型,声明只是在1的基础上添加一个*号
*即typedef int(*typeFunc)(int,int);
函数指针变量表达:typeFunc p;

#include<iostream>
using namespace std;
int add(int a,int b)
{return a+b;
}
typedef int (*typeFunc)(int,int);
int main()
{typeFunc p;p = add;p(3,4);return 0;
}

3、定义函数指针
最为直接的方法:直接定义函数指针变量
int (*p)(int,int)*
函数指针变量表达: p

#include<iostream>
using namespace std;
int add(int a,int b)
{return a+b;
}
int (*p)(int,int);
int main()
{p = add;p(5,6);return 0;
}

三种函数指针的表达以及函数指针概念讲解相关推荐

  1. php函数有哪三种,【后端开发】php函数可以分为哪三种

    1.变量函数 变量函数又叫可变函数,php脚本在执行中会寻找与变量的值同名的函数并且去执行它,这样的好处是可以将不同的函数名称赋值给同一个变量,赋给变量那个函数名,在程序中使用变量名加上圆括号就调用那 ...

  2. 计算机网络按拓扑结构可分为三种基本型,2012年计算机三级网络技术基本概念与名词解释(3)...

    计算机网络的基本概念 112. 计算机网络:计算机网络是利用通信设备和线路将分布在不同地点.功能独立的多个计算机互连起来,通过功能完善的网络软件,实现网络中资源共享和信息传递的系统.计算机网络由资源子 ...

  3. Flink窗口全解析:三种时间窗口、窗口处理函数使用及案例

    我们经常需要在一个时间窗口维度上对数据进行聚合,窗口是流处理应用中经常需要解决的问题.Flink的窗口算子为我们提供了方便易用的API,我们可以将数据流切分成一个个窗口,对窗口内的数据进行处理.本文将 ...

  4. ASP.NET Core端点路由中三种让人困惑的路由函数

    早先提及了端点路由app.UseEndpoints, 端点路由强调的是端点和路由,其核心目的是将请求落地点与路由寻址方式解耦. <ASP.NET Core端点路由作用原理> 这里面有几个容 ...

  5. OpenCV(总结篇)图像逐像素访问(三种操作:指针、迭代器、at()函数)

    目录 概述 1.指针访问 2.迭代器访问 3.at()函数访问 总代码 效果 参考资料 概述 访问图像像素值是图像处理的基本操作.OpenCV提供了很多访问方式,比较常用的三种方式:  (1) 通过指 ...

  6. 函数指针三种定义与使用方式

    文章目录 函数类型剖析 通过什么来区分两个不同的函数? 函数指针(指向函数的指针) 函数指针三种定义方式 函数指针和指针函数的区别: 代码案例 函数类型剖析 通过什么来区分两个不同的函数? 一个函数在 ...

  7. C++函数的三种传递方式

    C++函数的三种传递方式为:值传递.指针传递和引用传递 值传递: void fun(int x){x += 5; //修改的只是y在栈中copy x,x只是y的一个副本,在内存中重新开辟的一块临时空间 ...

  8. c语言函数的三种调用方式是什么?

    函数的三种调用方式:1.函数作为表达式中的一项出现在表达式中,例"z=max(x,y)":2.函数作为一个单独的语句,例"printf("%d",a) ...

  9. 浅谈js函数三种定义方式 四种调用方式 调用顺序

    在Javascript定义一个函数一般有如下三种方式: 函数关键字(function)语句: function fnMethodName(x){alert(x);} 函数字面量(Function Li ...

最新文章

  1. Shell编程—【01】shell中常用的字符串操作
  2. 随动系统控制c语言源程序,基于DSP的小功率随动系统的控制器设计及优化
  3. python爬虫代码1000行-简单用14行代码写一个Python代理IP的爬虫
  4. [译]RxJS文档04——Observer 观察者
  5. 剑指Offer:剪绳子(动态规划、贪婪算法)
  6. kettle 查询数据库写入文件_怎么连接数据库-详解如何用kettle连接mysql数据库并导出sql查询结果...
  7. html5中外描边怎么写,CSS3实现文字描边的2种方法(小结)
  8. c++输出重定向 linux,C++ stderr/stdout 重定向到文件
  9. SizeOf相关代码
  10. 肢解诺兰的逻辑:当科幻背离科学
  11. c++算法解决力扣跳步问题
  12. 银河麒麟SP1解压压缩包后文件名称乱码
  13. 学生用计算机怎么转换进制,一种计算机二进制和十进制转换教具的制作方法
  14. 程序员如何赚「睡后」收入?
  15. PMI2016大会最全资料集合
  16. 人脸识别入门论文《Deep Facial Expression Recognition: A Survey》学习笔记
  17. iis网站服务器+sql server数据库服务器安全
  18. 【人工智能在图像识别技术上应用】
  19. idea查看类层次结构图
  20. 计算机显示屏原理,解密:七段显示的工作原理

热门文章

  1. 自学Vue时我曾经出过错的地方(一)
  2. 生成对抗网络简介,深度卷积生成对抗网络(DCGAN)简介
  3. 计算机硬件技术基础 ---第一章
  4. 重装NVIDIA驱动遇到的一个问题(已解决)
  5. Highcharts 实现甘特图
  6. 2023年,医美行业如何借助AI和智能工牌力量优化门店销售服务流程,实现增长
  7. Ethernet MAC
  8. 拆解京东物流IPO:亏损十多年,原CEO王振辉在上市前被换掉
  9. Practical Byzantine Fault Tolerance and Proactive Recovery
  10. 计算机无法为u盘保存所有数据,U盘插电脑后设置成只能读不能写状态