当前位置: 首页 > news >正文

8.5 【C语言】指向函数的指针

8.5.1 什么是函数的指针

每次调用函数时都从该地址入口开始执行此段函数代码。函数名代表函数的起始地址。

8.5.2 用函数指针变量调用函数

例8.22 用函数求整数a和b中的大者

解题思路:在主函数调用max函数,除了可以通过函数名调用外,还可以通过指向函数的指针变量来实现。

#include<stdio.h>
int main(){int max(int,int);      //函数声明int a,b,c;printf("please enter a and b:");scanf("%d,%d,&a,&b");c=max(a,b);           //通过函数名调用max函数printf("a=%d\nb=%d\nmax=%d\n"a,b,c);return 0;
}
int max(int x,int y){int z;if(x>y) z=x;else    z=y;return(z);
}

(2)通过指针变量调用它所指向的函数

#include<stdio.h>{int main(){int max(int,int);   //函数声明int(*p)(int,int);  //定义指向函数的指针变量pint a,b,c;p=max;printf("please enter a and b:");scanf("%d,%d",&a,&b);c=(*p)(a,b);    //通过指针变量调用max函数printf("a=%d\nb=%d\nmax=%d\n",a,b,c);return 0;            }int max(int x,int y){int z;if(x>y) z=x;else    z=y;return(z);   }
}

8.5.3 怎样定义和使用指向函数的指针变量

类型名(*指针变量名)(函数参数表列)

(1)定义指向函数的指针变量,并不意味着这个指针变量可以指向任何函数,它只能指向在定义时指定的类型的函数。

(2)如果要用指针调用函数,必须先使指针变量指向该函数。

(3)在给函数指针变量赋值时,只须给出函数名而不必给出参数。

(4)用函数指针变量调用函数时,只须将(*p)代替函数名即可。

(5)对指向函数的指针变量不能进行算术运算,如p+n,p++,p--等运算是无意义的。

(6)用函数名调用函数,只能调用所指定的一个函数。

8.5.4 用指向函数的指针作函数参数

指向函数的指针变量的一个重要用途是把函数的入口地址作为参数传递到其他函数。

相关文章:

8.5 【C语言】指向函数的指针

8.5.1 什么是函数的指针 每次调用函数时都从该地址入口开始执行此段函数代码。函数名代表函数的起始地址。 8.5.2 用函数指针变量调用函数 例8.22 用函数求整数a和b中的大者 解题思路&#xff1a;在主函数调用max函数&#xff0c;除了可以通过函数名调用外&#xff0c;还可…...

C++实现字符串的逆置

目录 C和C的区别 【1】C对C的扩充 【2】C对C的兼容 第一个C程序 【1】hello world 【2】cout标准输出流对象 i&#xff09;介绍 ii&#xff09;运算 iii&#xff09;cout的使用 iv&#xff09;使用cout指定格式的输出 练习&#xff1a;1、输出斐波那契的前10项。 【3】…...

论Spring或Spring Boot的花式扩展

文章目录 引言扩展点讲述花式扩展之自动配置类花式扩展之实现接口实现方式样例 花式扩展之自定义starterImport方式SpringFactories方式 总结鸣谢 引言 Spring Boot是一个高度可定制的框架&#xff0c;旨在帮助开发者快速创建、配置和管理他们的应用程序 扩展点讲述 Spring Bo…...

如何评估分类模型的好坏

如何评估分类模型的好坏 评估分类预测模型的质量&#xff0c;常用一个矩阵、三条曲线和六个指标。 一个矩阵&#xff1a;混淆矩阵&#xff1b;三条曲线&#xff1a;ROC曲线、PR曲线、KS曲线&#xff1b;六个指标&#xff1a;正确率Acc、查全率R、查准率P、F值、AUC、BEP值、KS…...

● 84.柱状图中最大的矩形

84.柱状图中最大的矩形 class Solution { public:int largestRectangleArea(vector<int>& heights) {stack<int>st;heights.insert(heights.begin(),0);heights.push_back(0);st.push(0);int res0;for(int i1;i<heights.size();i){while(heights[i]<heig…...

未检查的转换: ‘java.lang.Object‘ 转换为 ‘java.util.List

fastjson方式 Object object ... // 获取待转换的objectList<WbsCategory> list JSON.parseObject(JSON.toJSONString(object), new TypeReference<List<WbsCategory>>() {}); 在这个示例中&#xff0c;我们使用JSON.toJSONString()将object对象转换…...

【C语言】使用C语言,实现九九乘法表(另附Python、Java、JavaScript实现方式)

文章目录 1. C语言实现1.1 思路1.2 代码实现 3.其他语言实现3.1 Python实现3.2 Java实现3.3 JavaScript实现 1. C语言实现 1.1 思路 九九乘法表图示&#xff1a; 思路如下&#xff1a;定义两层for循环即可实现九九乘法表 一共有9层&#xff0c;所以要定义一个变量i&#xff…...

[机缘参悟-102] :IT人 - 管理的本质?管理人与从事技术的本质区别?人性、冰山模型、需求层次模型

感悟&#xff1a; 管理的本质是&#xff1a;学习各种管理理论、方法、技能&#xff0c;克服自身的人性缺点、预防他人人性的恶点、利用他人的人性特点拿到结果&#xff0c;从而完成组织、管理者的上司、管理者自身、管理者下属的目标。管理中的问题&#xff0c;80%以上都人性问…...

[论文阅读笔记26]Tracking Everything Everywhere All at Once

论文地址: 论文 代码地址: 代码 这是一篇效果极好的像素级跟踪的文章, 发表在ICCV2023, 可以非常好的应对遮挡等情形, 其根本的方法在于将2D点投影到一个伪3D(quasi-3D)空间, 然后再映射回去, 就可以在其他帧中得到稳定跟踪. 这篇文章的方法不是很好理解, 代码也刚开源, 做一…...

【Java 动态数据统计图】前后端对接数据格式(Map返回数组格式数据)六(120)

说明&#xff1a; 前端使用&#xff1a;vue3.0 前后端对接数据格式&#xff1a;无非就是前端把后端返回的数据处理为自己想要的格式&#xff0c;或者&#xff0c;后端给前端处理好想要的格式&#xff1b; 针对前后端的柱状图&#xff0c;趋势图等数据对接&#xff0c;前端一般需…...

❤ 给自己的mac系统上安装java环境

❤ 给自己的mac系统上安装java环境 &#x1f353; 作为前端工程师如何给自己的mac系统上安装java环境 &#x1f34e; 最近因为自己的一些项目需求&#xff0c;mac电脑上需要安装一些后台的java环境&#xff0c;用来跑后台的java程序&#xff0c;于是从一个前端工程师的角度安…...

Java-匿名类

介绍 匿名类是指没有名字的类&#xff0c;它对一个给定的类进行拓展&#xff0c;或者实现一个给定的接口。使用匿名类可以使得代码更加简洁、紧凑、模块程度更高。 实现方式及语法 匿名类有两种实现方式 继承一个类&#xff0c;重写其方法实现一个接口&#xff08;可以是多…...

Maven的超级POM

对于我们创建的一个maven工程&#xff0c;即便我们自己的pom.xm文件中没有明确指定一个父工程&#xff08;父POM&#xff09;&#xff0c;其实也默认继承了超级POM&#xff0c;就好比JAVA类继承Object类一样。 maven官网关于超级POM的介绍&#xff1a; https://maven.apache.o…...

软考高级系统架构设计师系列论文九十二:论新技术的引进

软考高级系统架构设计师系列论文九十二:论新技术的引进 一、摘要二、正文三、总结一、摘要 根据国家税务总局对税务系统内所有系统进行集成与整合的需求,我所在的开发单位组织了全国金税工程防伪税控系统网络版的升级开发工作。该项目工程浩大,要求在具有严格的安全、可靠性…...

vue使用Bootstrap的详细方法

要在Vue中使用Bootstrap&#xff0c;您可以按照以下步骤进行操作&#xff1a; 安装Bootstrap&#xff1a;首先&#xff0c;您需要安装Bootstrap。您可以使用npm或者yarn来安装Bootstrap。打开终端&#xff0c;并在项目的根目录中运行以下命令&#xff1a; npm install bootst…...

leetcode做题笔记103. 二叉树的锯齿形层序遍历

给你二叉树的根节点 root &#xff0c;返回其节点值的 锯齿形层序遍历 。&#xff08;即先从左往右&#xff0c;再从右往左进行下一层遍历&#xff0c;以此类推&#xff0c;层与层之间交替进行&#xff09;。 思路一&#xff1a;BFS #define N 2000int** zigzagLevelOrder(st…...

如果将PC电脑变成web服务器:利用Nignx反向代理绕过运营商对80端口封锁

如果将PC电脑变成web服务器&#xff1a;利用Nignx反向代理绕过运营商对80端口封锁 在上一篇文章中&#xff0c;我们已经实现了内网主机的多次端口映射&#xff0c;将内网主机的端口映射到了公网&#xff0c;可以通过公网访问该主机了。 因为电信的家庭宽带&#xff0c;默认是…...

Eureka:服务注册-信息配置-自我保护机制

首先在提供者服务下&#xff0c;添加一个依赖 <!-- Eureka --><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-eureka</artifactId><version>1.4.6.RELEASE</version><…...

C++二叉树进阶

本期内容我们讲解二叉树的进阶知识&#xff0c;没有看过之前内容的小伙伴建议先看往期内容 二叉树-----补充_KLZUQ的博客-CSDN博客 目录 二叉搜索树 代码实现 基础框架 Insert Find Erase 析构函数 拷贝构造 赋值 二叉搜索树的应用 全部代码 二叉搜索树 二叉搜索树…...

layui tree组件取消勾选

layui(2.8.15) tree的api中&#xff0c;只有 tree.setChecked(id, idArr) 方法&#xff0c;没有取消勾选的方法。 我的需求是&#xff1a;勾选后做判断&#xff0c;如果不符合条件则取消勾选。 实现方法&#xff1a; 使用 tree的oncheck事件&#xff0c;在回调函数中做判断&…...

如何快速批量下载知网文献?CNKI-download自动化工具终极指南

如何快速批量下载知网文献&#xff1f;CNKI-download自动化工具终极指南 【免费下载链接】CNKI-download :frog: 知网(CNKI)文献下载及文献速览爬虫 项目地址: https://gitcode.com/gh_mirrors/cn/CNKI-download 对于学术研究者和学生来说&#xff0c;从知网&#xff0…...

Kook Zimage 真实幻想 Turbo在软件测试中的应用:自动化UI设计验证

Kook Zimage 真实幻想 Turbo在软件测试中的应用&#xff1a;自动化UI设计验证 1. 引言&#xff1a;UI设计验证的痛点与机遇 在软件开发流程中&#xff0c;UI设计验证一直是个让人头疼的环节。测试人员需要对照设计稿&#xff0c;逐个像素检查界面元素的位置、颜色、字体和布局…...

大多数人手动给Agent加记忆 Meta HyperAgents却让AI自己发明了完整记忆系统

你是不是也这样造Agent&#xff1a;先搭好任务执行模块&#xff0c;再手动塞一个向量数据库或RAG当记忆&#xff0c;最后发现跨轮迭代时效果还是“每次从零开始”&#xff1f;性能没 compounding&#xff0c;跨任务迁移更是一团乱麻。明明AI已经能自我迭代了&#xff0c;为什么…...

基于鲸鱼优化算法改进XGBoost在MATLAB中的时间序列预测性能(迭代次数、最大深度和学习...

基于鲸鱼优化算法优化XGBoost(WOA-XGBoost)的时间序列预测 WOA-XGBoost时间序列 采用交叉验证抑制过拟合问题 优化参数为迭代次数、最大深度和学习率 matlab代码&#xff0c;注&#xff1a;暂无Matlab版本要求 -- 推荐 2016B 版本及以上 注&#xff1a;采用 XGBoost 工具箱&…...

C++的std--allocator_traits分配器特性与自定义内存管理的适配

C标准库中的内存管理一直是个既基础又复杂的主题。std::allocator_traits作为C11引入的分配器特性模板&#xff0c;为自定义内存管理提供了统一的适配接口&#xff0c;让开发者能在不重写整套分配逻辑的情况下&#xff0c;灵活扩展内存管理策略。无论是实现高性能内存池&#x…...

Node.js后端服务开发:搭建调用Lingbot-Depth-Pretrain-ViTL-14的API接口

Node.js后端服务开发&#xff1a;搭建调用Lingbot-Depth-Pretrain-ViTL-14的API接口 你是不是遇到过这样的场景&#xff1a;手头有一个很厉害的AI模型&#xff0c;比如能估算图片深度的Lingbot-Depth-Pretrain-ViTL-14&#xff0c;但不知道怎么把它变成一个方便调用的服务&…...

Lychee Rerank在遥感影像分析中的应用:多源地理数据关联

Lychee Rerank在遥感影像分析中的应用&#xff1a;多源地理数据关联 1. 引言 每天&#xff0c;卫星和无人机都在产生海量的遥感影像数据。地质勘探团队需要从数万张卫星图片中找出可能的矿藏迹象&#xff0c;环境监测人员要追踪森林覆盖变化&#xff0c;城市规划者则要分析城…...

SEO 页面优化平台如何分析竞争对手的优化情况

SEO 页面优化平台如何分析竞争对手的优化情况 在当前竞争激烈的互联网环境中&#xff0c;SEO&#xff08;搜索引擎优化&#xff09;已经成为每个网站的生存和发展的关键。而在这其中&#xff0c;SEO 页面优化平台的角色尤为重要。通过对竞争对手的优化情况进行深入分析&#x…...

毕业设计实战:基于Java+MySQL的教务管理系统设计与实现指南

毕业设计实战&#xff1a;基于JavaMySQL的教务管理系统设计与实现指南 在开发“基于JavaMySQL的教务管理系统”毕业设计时&#xff0c;曾因课程报名表未通过学生ID与课程ID双外键关联踩过关键坑——初期仅设计报名编号、报名时间等基础字段&#xff0c;未与学生表、课程表建立关…...

别再只用外部中断了!用STM32F103的TIM2输入捕获,实现更稳定的旋转编码器读数

旋转编码器信号捕获&#xff1a;STM32F103定时器输入捕获模式实战解析 旋转编码器作为工业控制和消费电子中的核心位置传感器&#xff0c;其信号处理的稳定性直接影响系统性能。许多开发者习惯采用外部中断方式读取AB相脉冲&#xff0c;但在高速旋转或存在机械抖动的场景下&…...