函数指针

指针的指针的地址,指针自身的地址,指针指向的地址理解 指针的指针,指针指向的地址,还有自身的地址之间的关系有些复杂,浅谈一下自己的理解。 #include <iostream> //#include <fstream> int test(int a, int b); int main() { using namespace std; int i = 1, j = 2; int* p1 = &i; int* p2 = &j; int** p3 = &p1; cout << "i的地址 阅读详情

函数指针就是指向函数的指针变量

每个函数都有自己的地址

这个地址就是函数指针所指向的地址

入口地址就是函数指针所指向的地址

有了指向函数的指针变量之后就可以通过指针变量调用该函数

下面是我的一个小例子有具体说明,就是为了解释下函数指针指针,也是为了巩固复习

#include<iostream>
using namespace std;
double compute(double x,double y,double (*fp)(double, double));//声明函数
double add(double x,double y);
double sub(double x,double y);
double mul(double x,double y);
double compute(double x,double y,double (*fp)(double ,double)){	//函数指针传递到此处进行函数调用
	double p;
	cout<<(*fp)(x,y);
	p=(*fp)(x,y);
	return p;
}

double add(double a,double b ){
return a+b;
}
double sub(double a,double b){
return a-b;
}
double mul(double a,double b){
return a*b;
}

main(){
	double a,b;
	int c;
	cin>>a;
	cin>>b;
	cin>>c;
	double (*fp)(int);					//声明函数指针
	if(a!=0&&b!=0&&c!=0){				//条件选择判断
	
	switch(c){							//进行选择计算方法
		case 1:compute(a,b,add);break;
		case 2:compute(a,b,sub);break;
		case 3:compute(a,b,mul);break;
		}
	}else{
	cout<<"error";
	}
	return 0;
}


函数指针、函数指针数组、指向函数指针数组的指针 目录 一、函数指针(本质是指针) 1.( * ( void( * )( ) )0)( ) ; 2.void( * signal ( int,void( * )( int ) ) )( int ) 二、函数指针数组 (本质是数组) 三、指向函数指针数组的指针(本质上是一个指针) 4.回调函数 建议在看函数指针前,了解一下数组指针,指针数数组的解析,假如本来就了解的化就可跳过。 点击打... 阅读详情

相关推荐

LMI线性矩阵不等式之非线性变量处理

​ 如果一个LMI线性矩阵不等式中的某项存在两个矩阵变量相乘,那么称该类情形为非线性矩阵不等式,而要直接求解时很困难的,而且LMI工具箱也无法求解非线性矩阵,所以需要通过变量替换法进行处理。 ​...

Mr.邹的博客 4549

指针地址与指针指向的地址

int *q = new int[3]; q表示指针指向的地址,&q表示指针本身的地址。 int main() { int ret = 0; int *a = new int[3]; int *c = new int[4]; int *b = a; printf("%6x %6x %6x %6x\n", &a, a, &b, b); delete a; delete c; printf("%6x %6x %6x %6x\n", &a, a, &a

qq_24946843的博客 3328

【coze实战】基于Coze的公众号图文自动化生成工作流实战解析

【coze实战】基于Coze的公众号图文自动化生成工作流实战解析

大家好,我是码农老gou,一名专注于编程技术的程序员。在这个博客中,我将与大家分享我在工作和学习中的经验、见解以及一些实用的技术干货。 1万+

C语言之指针本身的地址、指针指向的地址、指针的指针地址(五十七)

#include <stdio.h> int main(){ int a = 5; int b = 6; //1.指针p存放了变量a的地址,*a = 5; int *p = &a; //2.指针p存放了变量b的地址,*b = 6; int *q = &b; int c = 7; //3.指针m存放了变量c的地址,*m = 7; int *m = &c; printf("&a = %p\n",&a); pr.

Android系统攻城狮 5709

基于smart_rtmp直播,最简单的部署手册

版本号 添加内容 修改时间 V1.0 新建 2021年12月30日 V1.1 增加网页播放 2021年12月31日 V1.2 增加是否可以多流和测试数据 2022年1月5日 目录 一、软件储备 1.推流软件:OBS 2.服务器流媒体软件:smart_rtmp 3.播放软件:Pot...

qq_28768477的博客 1万+

GEOPHYSICS 投稿避坑指南:从格式规范到双盲评审的实战解析

本文详细解析了GEOPHYSICS期刊投稿的全流程避坑指南,从格式规范、数据声明到双盲评审的实战策略。特别强调了数学公式排版、图表制作标准以及投稿系统的隐藏关卡,帮助作者避免常见错误,提升投稿成功率。

weixin_30606461的博客 236

C语言高级编程:指针变量p指向的地址与p自身的地址

测试平台:64位X86Ubuntu 代码1: #include <stdio.h> void main(void) { int *p; int i = 10; p = &i; printf("&p = %p, p = %p, &i = %p, *p = %d\n", &p, p, &i, *p...

ARM-Linux 2695

51单片机IAP技术详解:从原理到实战,实现远程程序自更新

在嵌入式系统开发中,程序更新是产品维护和功能迭代的核心需求。传统方式依赖外部烧录器,操作繁琐且无法远程进行。IAP(在应用中编程)技术则从原理层面解决了这一难题,它允许单片机在运行过程中通过特定接口(如串口)动态修改自身的Flash程序存储器。这项技术的核心价值在于赋予设备远程升级和自主维护的能力,极大地延长了产品生命周期并降低了维护成本。其典型应用场景包括智能家居控制器、工业数据采集模块和远程仪表等部署后不便拆卸的设备。本文以经典的51单片机(如STC89C52)为例,深入剖析IAP的实现,其中Bootl

weixin_29161719的博客 404

指针与地址

指针是一种用于存放另一个变量的地址的变量。       机器的存储器通常由连续编号(或编址)的存储单元序列组成,这些存储单元可以以单个的或相连成组的方式操纵。通常情况下,一个字节可表示一个字符,一对相连的存储单元可表示一个短整数,而四个相邻的字节则构成一个长整数。指针由能存放一个地址的一组存储单元 ( 通常是两个或四个字节 ) 构成。因此,如果 c的类型是c h a r并且p是指向 c的指针

michael 952

ZedBoard+Vivado(二)——PS + PL实现流水灯

硬件:Zedboard 软件:Vivado2018.2 + Win10 本文参考了http://blog.chinaaet.com/cuter521/p/35978的设计 1 设计 功能:PS + PL流水灯 语言:C 流程:创建工程-&amp;gt;IP Integrator-&amp;gt;综合、实现、生成Bitstream-&amp;gt;SDK 2 流程 2.1 创建工程 跟上一篇步骤完全相同,这里不用添加源文...

q416524389的博客 3694

UDS诊断服务基础详解之二19服务

本文主要介绍UDS统一诊断服务的19 01服务,包含状态位和故障码的解析以及19 01服务的具体说明

车载网络小D的博客 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=&Sub; 这里声明了两个函数指针.

weixin_45423515的博客 8820

【原创】汇川H5U PLC控制伺服的方法

6、在线调试-进入伺服调试,可以在本软件上进行调试,可以实现原点回归、正向点动、反向电动、使能(这里使能打开时触摸屏上的使能不能打开,会冲突)、复位、停止(如下图所示)。5、在原点返回设置中一般情况下对原点信号、正限位、负限位、原点返回方向、原点返回方式进行设置,其他设置默认不改(如下图所示)。3、在单位换算设置上只需要修改脉冲数和移动量(根据伺服配套导轨上名牌进行设置),其他设置默认不改(如下图所示)。11、双击后右边出现编辑框 在上半部分定义变量(IN、INOUT、OUT、VAR)(如下图所示)。

Qinmingyue13的博客 6662

掌握指针进阶:一篇带你玩转函数指针、函数指针数组及指向函数指针数组的指针!!

数组是一个存放相同类型数据的存储空间,那我们已经学习了指针数组//数组的每个元素是int*那要把函数的地址存到一个数组中,那这个数组就叫函数指针数组,那函数指针的数组如何定义呢?答案是:parr1parr1先和[]结合,说明parr1是数组,数组的内容是什么呢?是int (*)()类型的函数指针。转移表总之,函数指针数组实际上是一个数组,其元素都是指向函数的指针。这使得我们可以将不同的函数存储在数组中,并通过索引来调用特定的函数。

深入解析C/C++编程技巧,带你探索高效开发之路 1408

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

详解C语言指针函数、函数指针、函数指针数组

在C语言中,指针是一个很重要但是又很容易弄错的概念,也可以说指针就是C语言的灵魂,所以说学好指针对于完全掌握C语言是一个必须的过程。而在指针中,指针函数、函数指针、指针函数数组、函数指针数组、指向函数指针数组的指针等等概念看着又绕又头疼。本问总结了一下以上一些概念以及用法,并给出例程深化理解。 1. 指针函数 指针函数就是返回指针值的函数,本质是一个函数。所以指针函数等价于“返回值为指针的函数...

一只大笨猫的博客 2万+

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

详解函数指针和类成员函数指针

作者:倾夜·陨灭星尘 一.什么是函数指针? 函数指针,顾名思义即指向函数的指针。 如果要问,为什么能用一个指针指向一个函数呢?我觉得要理解这个问题,以及要理解后面的函数指针和类成员函数指针,没有什么比从计算机原理的角度来理解更容易了。这里就简要回顾一下相关知识。 众所周知,计算机(图灵机)执行程序的基本流程就是:取指令->执行指令->取下一条指令->……。取指令的位置由一个寄存器PC决定。

yyx112358的博客 1万+

假人有限元模型

假人模型,车辆碰撞假人有限元模型,适合做乘员安全的研究者利用

函数指针、函数指针数组,函数指针数组的指针

数组指针 概念:数组指针是指针,只要是指针他就占4个字节; 例如: 整形指针:int *p;能够指向整形数据的指针    浮点型指针:float *p;能够指向浮点型的数据的指针 那么数组指针,同样的理解就是指向数组的指针。 Eg:  int (*p)[10] 解释:这里的p由于小括号的原因和*先结合,所以他就是指针,然后指向的是一个大小为10的整形数组,所以p首先是一个指针,然后指向

Gary的面包屑小道 1万+

指针深入了解——函数指针,函数指针数组,指向函数指针数组的指针。

我们上期了解了,数组指针,指针数组,我们知道了,数组也有自己的地址,那么函数有没有自己的地址呢?如果有那又该怎么存起来呢?今天我们就一起来探讨一下。

qq_63943454的博客 1205

函数指针和函数指针类型

参考:https://blog.youkuaiyun.com/candyliuxj/article/details/6339414 函数指针 1.     定义 每一个函数都占用一段内存单元,它们有一个起始地址,指向函数入口地址的指针称为函数指针。 注意:函数指针的本质是一个指针变量,且指针指向的函数的入口地址 2.     语法 指向函数的指针变量的一般定义形式为:        数据类型  ...

杨树的博客 7778

【C语言】函数指针、函数指针数组、函数指针数组的指针

一.函数指针 1.定义理解 函数指针:是一个指针,存放函数地址的指针。 函数的地址可以通过取地址函数名拿到,也可以通过函数名直接拿到。2.函数指针 (1)定义一个函数test void test(char *str) {     printf("%s\n",str); } int main() {     //函数指针的定义方式     void (*p)(char *str) = test...

Miss_Monster的博客 1229

函数指针详解

  这篇文章把函数指针的各种常用情况做了一个详解的总结。 1. 指向普通函数的指针 很简单,如下的例子可以说明基本格式和用法:int int_add(int a, int b){ return (a+b);}int int_sub(int a, int b){ return (a-b);}int (*int_operato

sparkliang的专栏 1万+

函数指针和返回函数指针的函数

前言 无 函数指针 这里函数在前,指针在后所以很明显这是再说一个指针,也就是那个十六进制整数。 可以知道函数名所指向的就是内存中函数的首地址,那么完全可以使用一个指针来指向这个首地址。声明方式如下 type (*变量名)(参数); // 如 int (*pf)(int, int) 这个声明的意思就是一个函数指针,指向一个返回值为 int型,参数为两个 int型的函数首地址。这里面用一个括号强行将*的优先级提高,使得这个变量名先代表的是指针。但是很明显这里是没有具体的函数内容的,也就是说需要一个现成的函

cuoxin123的博客 1517

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

函数指针的使用和定义方法函数指针的概念三种表达函数指针的方法函数指针的调用方法 函数指针的概念 三种表达函数指针的方法 函数指针的调用方法 #函数指针概念 如果在程序中定义了一个函数,那么在编译时系统就会为这个函数代码分配一段存储空间,这段存储空间的首地址称为这个函数的地址。而且函数名表示的就是这个地址。既然是地址我们就可以定义一个指针变量来存放,这个指针变量就叫作函数指针变量,简称函数指针。 #三种表达函数指针的方法 接下来通过简单加法运算函数:int add(int a,int b)来演示其对应的函数指

qq_37975668的博客 1587
上一篇: java错误之调用
下一篇: css属性之animation与@keyframes制作天空动态云彩
反斜杠青年
博客等级 码龄11年 29粉丝 73原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值