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

★★★指针数组,数组指针,指针函数,函数指针,二级指针,递归函数,回调函数,函数指针数组

1. 指针数组
概念:数组的每个元素都是指针(即存储地址的变量),数组本身是 “指针的集合”。
作用:用于存储多个地址,方便批量管理指针变量,适用于需要处理多个同类型指针的场景(如字符串数组)。
示例:int *arr[3];(定义一个包含 3 个 int 型指针的数组,每个元素可指向不同的 int 变量)。
2. 数组指针
概念:指向整个数组的指针,指针的类型与数组的类型一致(需指定数组长度)。
作用:用于指向并操作整个数组,确保指针移动时按数组整体大小偏移,常用于传递多维数组或精确控制数组访问。
示例:int (*p)[5];(定义一个指向 “包含 5 个 int 元素的数组” 的指针,p 指向数组首地址)。
3. 指针函数
概念:返回值为指针的函数,本质是 “函数”,其返回结果是一个地址。
作用:用于返回动态分配的内存地址、数组首地址等,方便函数向外部传递复杂数据(如字符串、数组)。
示例:int *func(int x) { ... }(函数 func 返回一个 int 型指针,可指向某个 int 变量或数组)。
4. 函数指针
概念:指向函数的指针,存储函数的入口地址,指针类型由函数的返回值和参数列表决定。
作用:实现函数的间接调用,支持动态选择执行的函数(如回调机制、状态机),提高代码灵活性。
示例:int (*p)(int, int);(定义一个指向 “参数为两个 int、返回值为 int 的函数” 的指针,p 可指向如add(int a, int b)的函数)。
5. 二级指针
概念:指向指针的指针,存储的是另一个指针变量的地址。
作用:用于间接修改指针变量的值(如函数中修改外部指针的指向),或处理指针数组、多维指针等复杂结构。
示例:int a = 10; int *p = &a; int **pp = &p;(pp 是二级指针,通过**pp可访问 a 的值)。
6. 递归函数
概念:在函数体内直接或间接调用自身的函数,需包含 “递归终止条件” 避免无限递归。
作用:将复杂问题分解为规模更小的同类子问题(如阶乘、斐波那契数列、树的遍历),代码简洁直观。
示例:计算阶乘的递归函数
int factorial(int n) {if (n == 0) return 1; // 终止条件return n * factorial(n-1); // 递归调用
}
7. 回调函数
概念:通过函数指针传递给另一个函数,并在该函数内部被调用的函数,即 “被回调的函数”。
作用:实现模块化设计,允许用户自定义函数逻辑并注入到通用框架中(如排序算法中的比较函数、事件处理)。
示例:通过回调函数实现自定义排序
void sort(int *arr, int len, int (*cmp)(int, int)) {// 排序逻辑中调用cmp函数比较元素
}
int ascending(int a, int b) { return a - b; } // 回调函数(升序)
sort(arr, 5, ascending); // 传入回调函数
8. 函数指针数组
概念:数组的每个元素都是函数指针,即 “存储多个函数入口地址的数组”,数组元素的函数指针类型需一致。
作用:批量管理同类型函数,实现多分支函数的快速调用(如菜单选择、状态机跳转)。
示例:
int add(int a, int b) { return a + b; }
int sub(int a, int b) { return a - b; }
int (*func_arr[2])(int, int) = {add, sub}; // 函数指针数组
func_arr[0](3, 2); // 调用add,返回5
http://www.jsqmd.com/news/78041/

相关文章:

  • 2025年12月医学教育题库评测:昭昭题库的综合表现分析 - 品牌测评鉴赏家
  • RimWorld模组管理器终极指南:一键解决依赖冲突的智能排序神器
  • 2025 年 12 月江苏密集架厂家权威推荐榜:档案密集架/移动密集柜/密集柜,匠心工艺与智能存储解决方案深度解析 - 品牌企业推荐师(官方)
  • 2025年12月无锡宠物医院权威推荐榜:覆盖新吴区、滨湖区、惠山区、锡山区、梁溪区的专业诊疗与暖心守护之选 - 品牌企业推荐师(官方)
  • 3步搞定iOS IPA管理:这款工具让应用下载变得超简单
  • 2025 国内 TOP 免费无版权音乐网站排行榜!避免音乐侵权必藏
  • 2025医学考研课程攻略|3家高口碑课程,避开90%的坑 - 品牌测评鉴赏家
  • 选点问题的贪心解法
  • 2025年12月昭昭医考培训深度评测:专业医考培训机构的实力解析 - 品牌测评鉴赏家
  • 微信域名验证失败?用 Nginx 快速部署文本验证文件
  • Docker网络模式深度实践:bridge到overlay全解析
  • 2025 学生党线上兼职 app 推荐:私域轻创业增收宝典 - 速递信息
  • 破解增长密码:2025国内电商数据分析平台实用选型指南 - 速递信息
  • 安全审计平台:运营商数字化转型的必选项与国内优质厂商全景
  • 2025 年常州混合机与粉碎设备厂家权威推荐榜:高效混合、超微粉碎、万能破碎技术实力深度解析 - 品牌企业推荐师(官方)
  • 2025年12月昭昭医考资料深度评测:专业性与服务体验如何? - 品牌测评鉴赏家
  • 散修带你入门鸿蒙应用开发基础第八节:高阶函数核心解析与应用 - 鸿蒙
  • VDD_EXT应用全解:原理、限制与低功耗设计优化
  • 【MySQL】数据库约束
  • 2025 年快速卷帘门厂家最新推荐榜,聚焦企业技术实力、产品品质与高效服务能力深度剖析 - 品牌鉴赏师
  • 四川工程监理公司排名前五,你绝对不能错过! - 百誉集团
  • 国内排名前五的AI文献综述工具,你绝对不能错过! - 百誉集团
  • AI搜索优化公司不知道怎么选?成都奇林智媒把流程摊开看,让你花钱明明白白 - 奇林智媒GEO
  • 基于MATLAB的RFID防碰撞算法仿真
  • 2025 年 12 月管道电预热工程厂家权威推荐榜:专业设备与高效施工,热力管道电预热工程一站式解决方案精选 - 品牌企业推荐师(官方)
  • 盘点2025年超纯水器/实验室超纯水器/国产超纯水器口碑好/性能好/质量好/品质好的生产企业 - 品牌推荐大师
  • 2025年二手发电机买卖回收权威推荐榜:专业甄选高性价比设备,提供一站式回收与交易服务 - 品牌企业推荐师(官方)
  • 2025 年 12 月冠晶石厂家权威推荐榜:外墙/内墙/防霉/水包水/水包砂/耐污/自洁冠晶石,甄选创新环保饰材品牌 - 品牌企业推荐师(官方)
  • 2025年智能体开发,Agent智能体,智能体数据生成公司推荐:数据精度与生成效率深度盘点 - 品牌鉴赏师
  • PC耐力板哪家可靠?2025优质耐力板厂家最新推荐榜单揭晓 - 深度智识库