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

指针与函数(三)

三 .指向函数的指针

函数和数组一样,经系统编译后,其目标代码在内存中连续存放,其名字本身就是一个地址,是函数的入口地址。C语言中,指针可以指向变量,也可以指向函数。

指问函数的指针的定义格式为 类型名(*指针变量名)参数表 其中参数表为函数指针所指向函数都所有形参。

定义了指向函数的指针以后,必须将一个函数名(函数的入口地址)赋给函数指针,然后才能用函数指针间接调用该函数。如

int(*pc)(int,int);    /*定义指向函数的指针pc,限定pc所指函数有两个整型参数*/
int ave(inta,intb);     /*声明有两个整型参数的函数 */
pc=ave;      /*指针pc指向函数ave*/

#include <stdio.h>

// 定义求最大值函数
int max(int a, int b) {
    return a > b? a : b;
}

// 定义求最小值函数
int min(int a, int b) {
    return a > b? b : a;
}

// 定义求平均值函数
int ave(int a, int b) {
    return (a + b) / 2;
}

int main() {
    int a = 10, b = 15, c;
    // 定义指向函数的指针 pc,限定 pc 所指函数有两个整型参数
    int (*pc)(int, int);
    // 定义指向函数的指针数组 p,不限定所指函数的参数
    int (*p[2])();

    // pc 指向 ave 函数
    pc = ave;
    // p[0]指向 max 函数
    p[0] = max;
    // p[1]指向 min 函数
    p[1] = min;

    c = (*pc)(a, b);
    printf("平均值是:%d\n", c);

    c = (*p[0])(a, b);
    printf("最大值是:%d\n", c);

    c = (*p[1])(a, b);
    printf("最小值是:%d\n", c);

    return 0;
}


http://www.kler.cn/a/294706.html

相关文章:

  • M芯片Mac构建Dockerfile - 注意事项
  • 深入Zookeeper节点操作:高级功能与最佳实践
  • 医学可视化之热力图
  • 《常用深度学习神经网络及其原理与应用场景》
  • 音视频入门基础:H.264专题(17)——FFmpeg源码中,获取H.264视频的profile的实现
  • uniapp上拉刷新下拉加载
  • 1-9 图像膨胀 opencv树莓派4B 入门系列笔记
  • 关键字volatile有什么含意?
  • Java线程池和Executor框架-面试与分析
  • Wimdows使用Appium IOS自动化
  • 行为型设计模式-责任链(chain of responsibility)模式-python实现
  • 第十六篇:走入计算机网络的传输层--传输层概述
  • 【Qt线程】—— Qt线程详解
  • 2024年水利水电安全员考试题库及答案
  • Linux C 内核编程 /proc 编程例子
  • 【代码随想录训练营第42期 续Day52打卡 - 图论Part3 - 卡码网 103. 水流问题 104. 建造最大岛屿
  • 手游后端架构中,用命令模式解决什么问题
  • How can I load the openai api configuration through js in html?
  • 云计算实训41——部署project_exam_system项目(续)
  • 关于Qt在子线程中使用通讯时发生无法接收数据的情况
  • Docker配置Redis持久化
  • 如何保护服务器免受恶意软件攻击?
  • C++学习笔记(11)
  • 【网络安全】如何预防xss
  • 基于EPS32C3电脑远程开机模块设计
  • 飞思相机存储卡格式化数据如何恢复?提供全面指南