三种函数指针的表达以及函数指针概念讲解
三种函数指针的表达以及函数指针概念讲解
- 函数指针的概念
- 三种表达函数指针的方法
函数指针的概念
如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针。
三种表达函数指针的方法
接下来通过简单加法运算函数: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 ...
最新文章
- Shell编程—【01】shell中常用的字符串操作
- 随动系统控制c语言源程序,基于DSP的小功率随动系统的控制器设计及优化
- python爬虫代码1000行-简单用14行代码写一个Python代理IP的爬虫
- [译]RxJS文档04——Observer 观察者
- 剑指Offer:剪绳子(动态规划、贪婪算法)
- kettle 查询数据库写入文件_怎么连接数据库-详解如何用kettle连接mysql数据库并导出sql查询结果...
- html5中外描边怎么写,CSS3实现文字描边的2种方法(小结)
- c++输出重定向 linux,C++ stderr/stdout 重定向到文件
- SizeOf相关代码
- 肢解诺兰的逻辑:当科幻背离科学
- c++算法解决力扣跳步问题
- 银河麒麟SP1解压压缩包后文件名称乱码
- 学生用计算机怎么转换进制,一种计算机二进制和十进制转换教具的制作方法
- 程序员如何赚「睡后」收入?
- PMI2016大会最全资料集合
- 人脸识别入门论文《Deep Facial Expression Recognition: A Survey》学习笔记
- iis网站服务器+sql server数据库服务器安全
- 【人工智能在图像识别技术上应用】
- idea查看类层次结构图
- 计算机显示屏原理,解密:七段显示的工作原理