三种函数指针的表达以及函数指针概念讲解
三种函数指针的表达以及函数指针概念讲解
- 函数指针的概念
- 三种表达函数指针的方法
函数指针的概念
如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针。
三种表达函数指针的方法
接下来通过简单加法运算函数: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;
}
三种函数指针的表达以及函数指针概念讲解相关推荐
- php函数有哪三种,【后端开发】php函数可以分为哪三种
1.变量函数 变量函数又叫可变函数,php脚本在执行中会寻找与变量的值同名的函数并且去执行它,这样的好处是可以将不同的函数名称赋值给同一个变量,赋给变量那个函数名,在程序中使用变量名加上圆括号就调用那 ...
- 计算机网络按拓扑结构可分为三种基本型,2012年计算机三级网络技术基本概念与名词解释(3)...
计算机网络的基本概念 112. 计算机网络:计算机网络是利用通信设备和线路将分布在不同地点.功能独立的多个计算机互连起来,通过功能完善的网络软件,实现网络中资源共享和信息传递的系统.计算机网络由资源子 ...
- Flink窗口全解析:三种时间窗口、窗口处理函数使用及案例
我们经常需要在一个时间窗口维度上对数据进行聚合,窗口是流处理应用中经常需要解决的问题.Flink的窗口算子为我们提供了方便易用的API,我们可以将数据流切分成一个个窗口,对窗口内的数据进行处理.本文将 ...
- ASP.NET Core端点路由中三种让人困惑的路由函数
早先提及了端点路由app.UseEndpoints, 端点路由强调的是端点和路由,其核心目的是将请求落地点与路由寻址方式解耦. <ASP.NET Core端点路由作用原理> 这里面有几个容 ...
- OpenCV(总结篇)图像逐像素访问(三种操作:指针、迭代器、at()函数)
目录 概述 1.指针访问 2.迭代器访问 3.at()函数访问 总代码 效果 参考资料 概述 访问图像像素值是图像处理的基本操作.OpenCV提供了很多访问方式,比较常用的三种方式: (1) 通过指 ...
- 函数指针三种定义与使用方式
文章目录 函数类型剖析 通过什么来区分两个不同的函数? 函数指针(指向函数的指针) 函数指针三种定义方式 函数指针和指针函数的区别: 代码案例 函数类型剖析 通过什么来区分两个不同的函数? 一个函数在 ...
- C++函数的三种传递方式
C++函数的三种传递方式为:值传递.指针传递和引用传递 值传递: void fun(int x){x += 5; //修改的只是y在栈中copy x,x只是y的一个副本,在内存中重新开辟的一块临时空间 ...
- c语言函数的三种调用方式是什么?
函数的三种调用方式:1.函数作为表达式中的一项出现在表达式中,例"z=max(x,y)":2.函数作为一个单独的语句,例"printf("%d",a) ...
- 浅谈js函数三种定义方式 四种调用方式 调用顺序
在Javascript定义一个函数一般有如下三种方式: 函数关键字(function)语句: function fnMethodName(x){alert(x);} 函数字面量(Function Li ...
最新文章
- python对文件的读操作方法有哪些-Python文件操作实例大全
- 从Jenkins或Gerrit上获取拉代码和编译命令
- sql 查询 定义变量
- SQL Server 2008 性能测试和调优
- ADO.NET中SqlCommand对数据库操作
- ios PNG Crush error (PNG图片错误)
- Reddit程序员的酒后真言
- (41)System Verilog 例化System Verilog模块
- eslint常规语法检
- Notice: Undefined offset 的解决方法
- centos7 mysql读写监控,《Centos7——zabbix监控mysql的常规操作》
- JZOJ 4230. 淬炼神体
- 【MM32F5270开发板试用】基于MindSDK对接雨滴传感器
- html中如何写平方根等,开方符号 数学符号平方根号等怎么输入
- android应用商店升级标准,五大应用商店宣布:共同推进安卓APP升级64位架构
- 关于 web cam 使用自家的摄像头实现 视频捕捉技术 高级篇
- 接班人不是克隆出来的:华为再显接班难
- [野狐行][辅助开发系列课程][2016/4/7][门外系列更新完毕]
- 【19】简单、通用、详细---PCIEAER的蒙代尔不可能三角,怎么禁止AER的firmware first mode
- 商业银行清算业务(一)