如何用函数指针调用函数

2023-11-15

先举一个用函数指针调用函数的例子
int Func(int x);   /*声明一个函数*/
int (*p) (int x);  /*定义一个函数指针*/
p = Func;          /*将Func函数的首地址赋给指针变量p*/

int Func(int x);

这一句是声明一个函数,是我们要被函数指针调用的函数,而且函数名表示函数的首地址。

int (*p) (int x);

这里定义了一个函数指针,int (*p) (int x); 里的int指的是函数的返回值,指要被调用的函数的返回值是整形。

int (*p) (int x); 里的*P指的是指向函数首地址的指针变量。

int (*p) (int x); int x表示被调用的函数参数是一个且是整形。

p = Func;

这一句是把被调函数的首地址存在定义的指针变量里,用来指向被调函数。

定义的函数指针和声明的函数一一对应,对照着看会很清晰。

 

举一个完整实用简单的例子来帮助理解

# include <stdio.h>
int Max(int, int);  //函数声明
int main(void)
{
    int(*p)(int, int);  //定义一个函数指针
    int a, b, c;
    p = Max;  //把函数Max赋给指针变量p, 使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)  //定义Max函数
{
    int z;
    if (x > y)
    {
        z = x;
    }
    else
    {
        z = y;
    }
    return z;
}

输出结果是:
please enter a and b:5 6
a = 5
b = 6
max = 6

 

 
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何用函数指针调用函数 的相关文章

随机推荐

  • 2022年中职组网络安全国赛A模块解析第二套

    2022年全国职业院校技能大赛 中职组 网络安全竞赛试题 2 总分100分 赛题说明 一 竞赛项目简介 网络安全 竞赛共分A 基础设施设置与安全加固 B 网络安全事件响应 数字取证调查和应用安全 C CTF夺旗 攻击 D CTF夺旗 防御等
  • Unix_Linux_AIX_常用命令总结

    目录 Java常用知识总结 前言 常用链接 Shell 自动化 处理相关 需要使用到的命令 编码思想 编码规范 shell脚本 循环处理 1 循环小火车 2 循环cup性能 各种命令 0 cd 1 uname 2 ifconfig 3 wh
  • PHP入门-PHP OOP类的继承(构造函数;public、protected和private;self、parent、final )

    0x00 写在前面 从零学习php 最终目的实现代码审计入门 软件采用sublime text 环境使用phpstudy搭建 需要有简单的html基础和php基础 跟随流沙前辈视频学习记录 OOP编程即面对对象编程 本篇学习面向对象中的继承
  • STM32(一)STM32简介

    一 什么是STM32 意法半导体 ST 集团于1988年6月成立 是由意大利的SGS微电子公司和法国Thomson半导体公司合并而成 1998年5月 SGS THOMSON Microelectronics将公司名称改为意法半导体有限公司
  • Linux下的硬件驱动——USB设备(上)(驱动配置部分)

    USB设备越来越多 而Linux在硬件配置上仍然没有做到完全即插即用 对于Linux怎样配置和使用他们 也越来越成为困扰我们的一大问题 本文着力从Linux系统下设备驱动的架构 去阐述怎样去使用和配置以及怎样编制USB设备驱动 对于一般用户
  • python程序基本格式

    缩进风格 恰当的空格 缩进问题 逻辑行首的空白 空格和制表符 用来决定逻辑行的缩进层次 从而用来决定语句的分组 语句从新行的第一列开始 缩进风格统一 每个缩进层次使用 单个制表符 或四个空格 IDE会自动将制表符设置成4个空格 Python
  • 软件测试过程

    目录 软件测试过程模型 计划和控制 测试计划 分析与设计 实现与执行 评估与报告 结束活动 标准的测试流程包括 计划与控制 分析与设计 实现与执行 评估与报告和结束活动 实际测试过程中分为 测试计划 测试方案 测试用例 测试执行 测试报告五
  • 用VS Code搞Qt6:编译源代码与基本配置

    优质资源分享 学习路线指引 点击解锁 知识定位 人群定位 Python实战微信订餐小程序 进阶级 本课程是python flask 微信小程序的完美结合 从项目搭建到腾讯云部署上线 打造一个全栈订餐系统 Python量化交易实战 入门级 手
  • JAVA(Spring)学习笔记---->Scope(作用域)

    这篇文章笔者和大家来聊一聊Spring中的两个标签配置范围 即singleton和prototype 前者意味单例的 后者则是多例的 Scope取值 实例化个数 实例化时机 对象创建 对象运行 对象销毁 singleton 单例 饿汉式 1
  • 华为配置端口流量统计

    配置端口流量统计 方便我们检查端口流量使用情况 排除问题 进行优化管理 以下是端口流量 统计的配置方法 步骤如下 a 先定义acl 匹配ping的源 目的IP地址 x和y是您这边测试的地址 ACL的编号自己随便定义 必须是3000以上 具体
  • Selenium图片下载到本地的实例

    目录 一 实例 指定网站 下载到本地的图片 今天与大家分享一个小案例 简单来说就是通过Selenium爬取京东 html页面的商品信息 图片 一 实例 指定网站 下载到本地的图片 效果展示 下载到本地图片 最后的通过Selenium下载到本
  • docker--扩展学习-理论--01

    docker 扩展学习 理论 01 一 Docker的应用场景 Web 应用的自动化打包和发布 自动化测试和持续集成 发布 在服务型环境中部署和调整数据库或其他的后台应用 从头编译或者扩展现有的 OpenShift 或 Cloud Foun
  • 微信开发

    近期在做模板消息推送用户的时候 遇到了报错码40001 但这是腾讯的万能报错码 感觉什么都是这个码顶锅 其实access token并不一定是真的过期导致的 先放一个官方调试工具在这 微信公众平台接口调试工具 1 有可能access tok
  • Python第三方库——rdflib

    实验要求 使用Python的第三方库rdflib 执行核心代码 如操作RDF OWL 执行SPARQL语句 参考资料 rdflib及其使用方法 rdflib 5 0 0 实验过程 在PyCharm上安装第三方库 点击PyCharm左下方的T
  • 如何设计日志系统_如何快速搭建日志系统

    易哥 高级软件架构师 网络工程师 数据库工程师 注册电气工程师 我们开发的业务系统通常会提供给很多人使用 那在使用的过程中 日志系统变得非常重要 日志系统记录的用户行为有以下的作用 从系统用户角度看 它展示了用户自身的操作历史和具体对象的变
  • C++ 虚函数 (virtual function) 介绍

    文章目录 1 什么是虚函数 2 虚函数与非虚函数的区别 3 派生类中的虚函数 4 构造 析构函数可以是虚函数吗 5 纯虚函数 5 1 纯虚函数的定义 5 1 纯虚函数的特定 1 什么是虚函数 C 对象有三大特性 继承 封装 多态 虚函数就是
  • 深入了解Bear Necessities Hackathon黑客松的优胜者们

    生态系统中的资深建设者皆知道Moonbeam是大型黑客松狂热爱好者 不论是线上虚拟的还是现场的 然而 很少有黑客松能达到Moonbeam和AWS举办的Bear Necessities黑客松这样的规模和吸引力 本次黑客松共有755人参与 共提
  • 下载MedShapeNet

    iTomxy data medshapenet 在 1 可下载 MedShapeNet 数据集 在其 Download 页 可选直接 GUI 下 或者先下一个索引文件 txt 的 每行一条文件的下载链接 然后用 wget 逐条下 这里放下
  • IDEA、DataGrip、WebStorm....激活时间2100,激活码激活

    DataGrip 1 下载jar包 JetbrainsCrack 3 1 release enc jar 2 到软件安装的 bin 目录 把这个jar包粘贴进去 image png 3 编辑文件中参数 datagrip exe vmopti
  • 如何用函数指针调用函数

    先举一个用函数指针调用函数的例子 int Func int x 声明一个函数 int p int x 定义一个函数指针 p Func 将Func函数的首地址赋给指针变量p int Func int x 这一句是声明一个函数 是我们要被函数指