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

c语言-函数指针

目录

  • 前言
  • 一、函数指针
    • 1.1 函数指针定义
    • 1.2 函数指针调用函数
    • 1.3 函数指针代码分析
  • 总结


前言

本篇文章介绍c语言中的函数指针以及函数指针的应用。


一、函数指针

函数指针:指向函数的指针。

在这里插入图片描述
函数在编译时分配地址。
&函数名 和 函数名代表的意义相同,都表示函数的地址。

1.1 函数指针定义

	int (* pf)(int,int);

int:表示函数指针指向的函数的返回值类型为int
pf:表示函数指针变量名
(int,int):表示函数指针指向的函数的参数类型
pf的类型:int(*)(int,int)

1.2 函数指针调用函数

	//写法一int ret1 = (*pf)(2,3); //通过对函数指针进行解引用//写法二int ret2 = pf(2,,3);  //函数指针调用函数的简写形式

1.3 函数指针代码分析

下面两断代码来自《c陷阱与缺陷》
代码一

	(* (void(*)()) 0)(); 

上面这行代码表示一次函数调用
void(*)() 表示函数指针类型
( void(*)() )0 表示将整型值0强制转换为函数指针类型
(* (void(*)()) 0)() 表示调用地址为0的函数

代码二

	void(* signal_func(int, void(*)(int)) )(int);

上面代码表示一次函数声明
函数名 signal_func
参数类型int和void(*)(int)
返回值类型 void(*)(int)

将代码进行简写

	typedef void(*SIGNALTYPE)(int); //将void(*)(int)函数指针类型重命名为SIGNALTYPESIGNALTYPE signal_func(int, SIGNALTYPE);

总结

http://www.lryc.cn/news/274187.html

相关文章:

  • conda
  • 【Vue】灵魂拷问
  • Scrapy 1.3.0 使用简介
  • 单机+内部备份_全备案例
  • 【kettle】pdi/data-integration 打开ktr文件报错“Unable to load step info from XML“
  • cocos creator人开发小游戏免费素材资源
  • 除了sd webui,compfy还有一个sd UI
  • c++属于同一个类的不同对象之间可相互访问private和protected成员
  • QT/C++ 远程数据采集上位机+服务器
  • 算法每日一题:保龄球游戏的获胜者
  • Do you know about domestic CPUs
  • 软件设计模式 --- 类,对象和工厂模式的引入
  • LeetCode74二分搜索优化:二维矩阵中的高效查找策略
  • 三极管组成的光控开关电路原理图
  • 【PostgreSQL】从零开始:(四十二)系统列
  • 快速、准确地检测和分类病毒序列分析工具 ViralCC的介绍和详细使用方法, 附带应用脚本
  • DNs服务学习笔记
  • 获取线程池中任务执行数量
  • RK3566 Android 11平台上适配YT8512C 100M PHY
  • docker 部署haproxy cpu占用特别高
  • Oracle导出CSV文件
  • 图像分割实战-系列教程12:deeplab系列算法概述
  • 数据库02-07 存储
  • WPF 入门教程DispatcherTimer计时器
  • 【教学类-43-04】20231229 N宫格数独4.0(n=2,4,6,8) (ChatGPT AI对话大师生成 回溯算法)
  • WPF美化ItemsControl1:不同颜色间隔
  • 查看进程对应的路径查看端口号对应的进程ubuntu 安装ssh共享WiFi设置MyBatis 使用map类型作为参数,复杂查询(导出数据)
  • 医院信息系统集成平台—安全保障体系
  • 【信息论与编码】习题-填空题
  • 二叉树的层序遍历经典问题(算法村第六关白银挑战)