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

函数指针

1、基本的函数指针

定义:函数存储空间的起始地址(入口地址)成为这个函数的指针

写法: int (*p)(int x, int y)
            这里指的就是定义了一个指向函数的指针变量p
示例: int max(int,int);
           int (*p)(int,int);
           p=max;
           int num;
           num=(*p)(1,2);  // 此处与num=max(1,2)的效果一致。
                                    // max内的具体函数内容此处不写
 
注意:1、int (*p)(int x, int y) 不能写成 int *p(int x, int y),()的运算级别比*高
                 如果写成去掉括号的形式,则变成函数p(int x, int y)的返回值是 int型的指针
           2、此例子中, p只能是指向函数起始地址,但是不能进行运算,不能通过运算进行执行指令的偏移
           3、指针变量不意味着它可以指向任何变量,返回值类型和形参个数与形参类型要一样才可行
 
2、函数指针作形参
把指向函数指针的函数作为形参:每次函数调用其他函数时,可以采用一个函数,调用不同的函数
                                                       这种做法有利于结构化程序的开发
int fun( int x, int y,int (*p)(int, int) )
int max(int, int);
int min(int, int);
fun(1,2,max);   // 进行指针函数的传递,传递函数的入口地址
……
int fun(int x, int y, int (*p)(int, int))
{
int result;
        result=(*p)(x,y);  // 在函数中使用传入的指针函数
        return 0;
}

转载于:https://www.cnblogs.com/lnleelove/p/9751820.html

相关文章:

  • Django admin源码剖析
  • 第53节:Java当中的IO流(上)
  • linux下自动获取并安装软件包 apt-get 的命令介绍
  • [CF482B]Interesting Array
  • linux连接oracle数据
  • [微信小程序] 微信小程序下拉滚动选择器picker绑定数据的两种方式
  • bzoj3991 LCA + set
  • php面相对象基本概念,基本形式,传值
  • 【Linux】- ps 命令
  • 10-序列化
  • EM算法
  • 《弹球学成语》需求分析报告
  • IDEA控制台问题:java lang OutOfMemoryError:PermGen space
  • c语言打印空白星号矩形
  • 关于Qt中窗口的坐标
  • 《Javascript高级程序设计 (第三版)》第五章 引用类型
  • Angular6错误 Service: No provider for Renderer2
  • DOM的那些事
  • java B2B2C 源码多租户电子商城系统-Kafka基本使用介绍
  • JS 面试题总结
  • Markdown 语法简单说明
  • MQ框架的比较
  • Node + FFmpeg 实现Canvas动画导出视频
  • Node.js 新计划:使用 V8 snapshot 将启动速度提升 8 倍
  • Terraform入门 - 1. 安装Terraform
  • vue-router 实现分析
  • 番外篇1:在Windows环境下安装JDK
  • 微信小程序上拉加载:onReachBottom详解+设置触发距离
  • 小程序button引导用户授权
  • ​3ds Max插件CG MAGIC图形板块为您提升线条效率!
  • (1)(1.13) SiK无线电高级配置(六)
  • (function(){})()的分步解析
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (论文阅读22/100)Learning a Deep Compact Image Representation for Visual Tracking
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (南京观海微电子)——I3C协议介绍
  • (学习日记)2024.01.19
  • (转) 深度模型优化性能 调参
  • .NET Standard 支持的 .NET Framework 和 .NET Core
  • .NET 中使用 Mutex 进行跨越进程边界的同步
  • .NET是什么
  • .pyc文件还原.py文件_Python什么情况下会生成pyc文件?
  • [ Linux 长征路第二篇] 基本指令head,tail,date,cal,find,grep,zip,tar,bc,unname
  • [\u4e00-\u9fa5] //匹配中文字符
  • [20150321]索引空块的问题.txt
  • [Android]通过PhoneLookup读取所有电话号码
  • [BZOJ1089][SCOI2003]严格n元树(递推+高精度)
  • [C++]拼图游戏
  • [HNOI2018]排列
  • [java面试]宇信易诚 广州分公司 java笔试题目回忆录
  • [json]定义、读写
  • [Leetcode] 寻找数组的中心索引
  • [LeetCode]—Longest Palindromic Substring 最长回文子串
  • [MySQL FAQ]系列 -- 账号密码包含反斜线时怎么办
  • [mysql]游标和触发器