带你玩转指针——指针进阶(二)

news2024/11/26 8:48:42

上次我们说到了函数指针,对于函数指针大家还不太清楚的参考,指针进阶(一)http://t.csdn.cn/z5cjM

函数指针数组

数组是存放相同类型的空间,前面我们已经学习了指针数组

int* arr[10] 每个元素是int*

那么我们把函数的地址存放到一个数组中,这个数组我们就称为函数指针数组,函数指针数组怎么书写呢?

一个·函数指针 int(*pa)(int ,int)=函数地址

多个函数指针就是函数指针数组了

上面是通过伪代码的形式呈现,那么在实际应用有·什么用呢,我们举一个例子

设计一个计算器,程序不难

指向函数指针数组的指针

指向函数指针数组的指针也就是一个指针,这个指针 指向 函数指针数组

就如上面的函数指针数组:int(*pa[5])(int ,int ) = { NULL,add,sub,mul,div };

我们怎么写一个指针指向这个函数指针数组

回调函数

回调函数就是一个通过函数指针的调用的函数

如果你把函数的指针(地址)作为参数传递给另外的函数,当这个指针被用来调用其所指向的函数时,我们就说这个是回调函数

库函数中有一个函数qsort

qsort函数的作用是可以进行数据的排序

首先我们要了解qsort函数,通过cplusplus网

看不懂不要紧,下面也有例子

说那么多还是看实例吧

有人说我要从大到小怎么办

将return 里面的两个相减数交换位置就好了

整型的排序我们会了,字符型,结构体的排序呢

那么qsort函数是怎么实现的,我们在之前学过冒泡排序,就是排整型数据的,qsort内部是使用快速排序的,今天我们利用冒泡排序的思想模拟qsort函数

先回忆一下冒泡排序

但是冒泡排序只能排整型,不能排字符型,也不能排结构体

我们设计一个兼容可以排序整型,又可以排字符型和结构体的呢

模拟qsort的思想,利用冒泡的形式

整体代码是上述的,是怎么实现的,我们一步一步剖析

上面是对一个大局部进行剖析,字符型和结构体的大同小异

我们理一理我们设计的my_qsort函数

那么谁是回调函数呢

有概念说,把函数的指针作为参数传递给另外的函数,当这个指针用来调用其所指向的函数的时候,我们就是说这个是回调函数

这样看来我们可以称sort_jud_int函数为回调函数了

回调函数的使用多种多样,结合指针,我们可以玩出多种多样的花样

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/143591.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

grpc实现c++异步非阻塞stream

grpc实现c异步非阻塞stream 参考文章 Non-blocking single-threaded streaming C servergRPC C async api doc and sample codegrpc异步stream server端demo 序言 原来一直是用着同步阻塞的grpc stream。由于不想再创建新的线程来监听grpc stream的新消息了,所以就…

怎么提高程序设计能力?可以参考程序-设计原则,程序-设计模式

怎么提高程序设计能力? 简单说下我的方式方法: 【程序架构】 借鉴设计模式和设计原则 【程序业务】 多理解客户需求,理解后,做竞品逻辑分析,分析出其逻辑结构,和数据结构 ; 再根据客户需求…

自己有工厂,怎样接外贸订单?

很多做外贸的小工厂和小型加工厂,除了传统的营销渠道外,也不知道如何做、才能接到外贸订单。小工厂想获得外贸订单,可通过以下7个方法:1、注册一些外贸B2B平台,发布产品,等待客户询盘外贸B2B平台太多了&…

商务车改装之奔驰威霆改装

今天来看看这台车的改装效果,首先外观改成GLS的一个包围。同时大灯换了一个三道杠的运动大灯。运动大灯加上包围,是不是时尚了很多。再来看看威霆内饰,白红相间的色彩搭配,仪表台换成一个大连屏的仪表台,带着飞机一样的…

4路DI开关检测计数器NPN/PNP输入,Modbus TCP协议,WiFi模块YL160频率测量 计数器

特点:● 4路开关量输入,支持NPN和PNP输入● DI每一路都可用作计数器或者频率测量● 支持Modbus TCP 通讯协议● 可以设置每转脉冲数用于转速测量● 内置网页功能,可以通过网页查询电平状态● 可以通过网页设定输出状态● 宽电源供电范围&…

OPC Expert v8.1.2211 Crack

像专业人士一样解决您的 OPC 和 DCOM 连接问题 [无需经验] 快速修复 OPC 和 DCOM 错误 使用 OPC Expert,您无需任何经验即可解决和修复 OPC 连接问题。OPC Expert 为您完成繁重的工作,以快速自动诊断 OPC 和 DCOM 问题……Ω578867473而且还不止于此。OP…

基于Java+SpringBoot+vue+element实现餐厅点餐系统平台

基于JavaSpringBootvueelement实现餐厅点餐系统平台 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 欢迎点赞 收藏 ⭐留言 文末获取源码联系方式 文章目录基于JavaSpringBo…

ATGM336H-5N定位导航模块介绍

ATGM336H-5N定位导航模块简介ATGM336H-5N系列模块是9.7X10.1尺寸的高性能BDS/GNSS全星座定位导航模块系列的总称。该系列模块产品都是基于中科微第四代低功耗GNSSSOC 单芯片—AT6558,支持多种卫星导航系统,包括中国的BDS(北斗卫星导航系统&am…

基于Java+SpringBoot+vue+element实现火车订票平台管理系统

基于JavaSpringBootvueelement实现火车订票平台管理系统 博主介绍:5年java开发经验,专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 超级帅帅吴 Java毕设项目精品实战案例《500套》 欢迎点赞 收藏 ⭐留言 文末获取…

足球视频AI(五)——球员与球的对象跟踪

一、基础概念 在之前的四节中,我们尝试解决: 1,球员识别、足球识别、裁判识别; 2,队伍的分类 3,平面坐标的换算 存在关键的问题是:每一帧的画面,每次都是重新识别,无…

【OpenCV】数字图像的表示 | 图像IO操作接口 | 图像混合操作

Ⅰ. 数字图像的表示 0x00 位数 计算机采用0/1编码的系统,数字图像也是利用0/1来记录信息。 我们平常接触的图像都是8位数图像,包含0~255灰度。 0:代表最黑 1:表示最白0x01 二值图像 一幅二值图像的二维矩阵仅由0、1…

VTK-vtkAbstractTransform及其子类

前言:本博文主要研究vtkAbstractTransform及其子类的实现原理,以及由此扩展的类。 目录 vtkAbstractTransform vtkGeneralTransform vtkGeoSphereTransform(9.0.3中没有该接口) vtkGeoTransform(9.0.3中没有该接口) vtkHomogeneousTransform vtkId…

企业微信客户联系自定义工具栏开发

一、问题说明:企业微信中私聊微信客户,在聊天输入框上面有一行快捷工具,这边怎么自定义开发?如下图,我们可以点击快捷发送,然后弹出一个页面,页面中有我们需要发送给当前会话的各种资源&#xf…

Maven高级-聚合-继承

多模块构建维护 作用&#xff1a;聚合用于快速构建maven工程&#xff0c;一次性构建多个项目/模块。 制作方式&#xff1a; 创建一个空模块&#xff0c;打包类型定义为pom <packaging>pom</packaging>定义当前模块进行构建操作时关联的其他模块名称 <modules&g…

2021年MathorCup高校数学建模挑战赛—大数据竞赛B题信息流智能推荐算法中的序列评估问题求解全过程文档及程序

2021年MathorCup高校数学建模挑战赛—大数据竞赛 B题 信息流智能推荐算法中的序列评估问题 原题再现&#xff1a; 随着互联网信息的蓬勃发展&#xff0c;用户在使用互联网应用时面临着信息过载的问题。推荐算法的出现&#xff0c;满足了用户个性化的内容消费需求&#xff0c;…

分布式任务调度系列 - XXL-JOB

一、前言 本内容仅用于个人学习笔记&#xff0c;如有侵扰&#xff0c;联系删除 二、传统的定时任务 1. 概念 1.1、定时任务的基本概念 程序为解决一个信息处理任务而预先编制的工作执行方案&#xff0c;这就是定时任务&#xff0c;核心组成如下&#xff1a; 执行器&#…

28个数据可视化图表的总结和介绍

数据可视化本身就是一种通用语言。我们这里通用语言的意思是&#xff1a;它能够向各行各业的人表示信息。它打破了语言和技术理解的障碍。数据是一些数字和文字的组合&#xff0c;但是可视化可以展示数据包含的信息。 “数据可视化有助于弥合数字和文字之间的差距”——Brie E…

C++入门——引用

1.概念 引用不是新定义一个变量&#xff0c;而是给已存在变量取了一个别名&#xff0c;编译器不会为引用变量开辟内存空 间&#xff0c;它和它引用的变量共用同一块内存空间 类型& 引用变量名(对象名) 引用实体&#xff1b; 而引用类型必然要与引用实体的类型一致。 …

下载微信小程序中的视频

工具准备&#xff1a;Fiddler 我这里用的5.0的版本。&#xff08;这个用来抓取视频下载地址&#xff09;Internet Download Manager&#xff08;idm&#xff09;版本6.37&#xff08;这个用来下载视频&#xff09;步骤&#xff1a;打开Fiddler如下图配置后抓包2.登录PC版微信&a…

1.5日报

今天完成项目环境的搭建&#xff0c;并成功剥离TestMrl相关接口&#xff0c;并成功运行 遇到的问题&#xff1a; 缺少 <dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId> <v…