当前位置: 首页 > 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.rkmt.cn/news/87977.html

相关文章:

  • 大巴厕所厂家排名top5,热门之选! - 百誉集团
  • 2025年12月无锡宠物医院权威推荐榜:覆盖新吴区、滨湖区、惠山区、锡山区、梁溪区的专业诊疗与暖心守护之选 - 品牌企业推荐师(官方)
  • 2025年12月昭昭医考资料全面评测:靠谱性、质量与用户反馈分析 - 品牌测评鉴赏家
  • Docker网络模式深度实践:bridge到overlay全解析
  • 2025 学生党线上兼职 app 推荐:私域轻创业增收宝典 - 速递信息
  • 破解增长密码:2025国内电商数据分析平台实用选型指南 - 速递信息
  • Python进阶之路:模块、包与异常处理的实战指南
  • 提升BERT模型效率与容量的新方法:Pyramid-BERT
  • 安全审计平台:运营商数字化转型的必选项与国内优质厂商全景
  • 2025年12月昭昭医考资料深度评测:专业性与服务体验如何? - 品牌测评鉴赏家
  • VDD_EXT应用全解:原理、限制与低功耗设计优化
  • 基于MATLAB的RFID防碰撞算法仿真
  • 2025 年度 Deepseek 知识库部署服务商全景报告:专属本地化交付方案及 AI 知识库部署方案商专项解析 - 品牌2026
  • 2025年去痘印产品哪款最能打?专家实测+用户反馈给出真实答案 - 资讯焦点
  • 2025 年 12 月管道电预热工程厂家权威推荐榜:专业设备与高效施工,热力管道电预热工程一站式解决方案精选 - 品牌企业推荐师(官方)
  • 盘点2025年超纯水器/实验室超纯水器/国产超纯水器口碑好/性能好/质量好/品质好的生产企业 - 品牌推荐大师
  • 成都工程造价公司排名前五,你知道几家? - 百誉集团
  • 2025 年知识库部署服务商全攻略:AI 知识库部署方案商企业私有化部署服务通俗指南与能力测评 - 品牌2026
  • 2025 年快速卷帘门厂家最新推荐榜,聚焦企业技术实力、产品品质与高效服务能力深度剖析 - 品牌鉴赏师
  • 2025年国产均质机厂家实力排名:技术领跑品牌推荐 - 品牌推荐大师1
  • 排名前10的AI文献综述工具,选对了效率翻倍! - 百誉集团
  • 品牌在AI搜索中失声?成都奇林智媒的AI GEO解决方案,助你成为AI推荐的首选答案 - 奇林智媒GEO
  • 2025年湖南防静电地坪材料与水性环氧地坪材料公司推荐 - myqiye
  • 出海企业如何实现合规高效全球雇佣?Safeguard Global名义雇主EOR提供一站式解决方案 - 品牌2025
  • 2025年稳压器制造商权威推荐榜单:家用稳压器/电梯稳压器/机床稳压器源头厂家精选 - 品牌推荐官
  • zz llamaindex和langchain使用对比
  • 2025 年企业智能 BI 私有化部署厂商推荐 :BI 私有化方案商、本地私有化厂商如何助力企业重构数据决策体系 - 品牌2026
  • SAP-MM采购申请批导程序-BAPI_PR_CREATE
  • 办公室下午茶小包装零食推荐:我工位抽屉里那套“更轻负担”的 Fixbody 清单 - AIEO
  • 2025陕西优质短视频拍摄公司TOP5权威推荐:本地企业获客 - 工业品牌热点