四川移动端网站建设网站切图谁来完成

张小明 2025/12/28 10:49:40
四川移动端网站建设,网站切图谁来完成,免费网站能到百度首页吗,北京的外包公司有哪些上节回顾#xff1a; C语言指针#xff08;六#xff09;——函数指针数组 上一节我们学习了函数指针数组#xff0c;它让菜单驱动的代码变得简洁优雅。通过将多个函数指针存储在一个数组中#xff0c;我们彻底摆脱了繁琐的switch语句#xff0c;实现了代码的高扩展性。…上节回顾C语言指针六——函数指针数组上一节我们学习了函数指针数组它让菜单驱动的代码变得简洁优雅。通过将多个函数指针存储在一个数组中我们彻底摆脱了繁琐的switch语句实现了代码的高扩展性。今天我们要在这个基础上更进一步学习指针的终极套娃——指向函数指针数组的指针。别被名字吓到其实理解了本质你会发现它很简单。指向函数指针数组的指针一、为什么需要这个套娃指针先思考一个问题既然函数指针数组这么好用为什么还要学指向它的指针答案很实在实际开发中确实很少直接使用。但学习它有重要价值理解C语言类型系统的完整性能看懂任何复杂的C语言声明面试时展示扎实的指针功底为理解更复杂的系统代码打下基础就像学习数学公式你可能不会天天用但懂了之后看世界的方式会不同。二、什么是指向函数指针数组的指针让我们用最直白的方式解释函数指针指向单个函数的指针函数指针数组存放多个函数指针的数组指向函数指针数组的指针指向这个数组的指针简单说这是一个指针它指向一个数组而这个数组里存的全是函数指针。三、如何定义不必着急我们一步一步来~第1步先定义函数指针数组// 定义一个函数指针数组包含3个元素 int (*funcArr[3])(int, int);第2步取这个数组的地址funcArr // 这就是指向函数指针数组的指针类型第3步定义指针变量存储这个地址int (*(*p)[3])(int, int) funcArr;我们来解析一下这一长串int (*(*p)[3])(int, int)*pp是一个指针(*p)[3]p指向一个包含3个元素的数组*(*p)[3]数组的每个元素是指针(int, int)这些指针指向的函数接受两个int参数最前面的int函数返回int类型四、用typedef让代码变清晰对于复杂声明typedef是救命稻草// 第1步定义函数指针类型 typedef int (*FuncPtr)(int, int); // 第2步用这个类型定义数组 FuncPtr funcArr[3]; // 第3步定义指向这个数组的指针 FuncPtr (*p)[3] funcArr;看用了typedef代码立刻变得简单多了五、简单示例#include stdio.h // 两个简单的测试函数 int Add(int a, int b) { return a b; } int Sub(int a, int b) { return a - b; } int main() { // 定义函数指针数组并初始化 int (*funcArr[2])(int, int) {Add, Sub}; // 定义指向这个数组的指针 int (*(*p)[2])(int, int) funcArr; // 使用数组直接调用 printf(直接使用数组\n); printf(Add(10, 5) %d\n, funcArr[0](10, 5)); printf(Sub(10, 5) %d\n, funcArr[1](10, 5)); // 通过指针调用 printf(\n通过指针调用\n); printf(Add(10, 5) %d\n, (*p)[0](10, 5)); // 先解引用p得到数组 printf(Sub(10, 5) %d\n, (*p)[1](10, 5)); // 查看地址 printf(\n地址信息\n); printf(funcArr地址%p\n, funcArr); printf(funcArr地址%p\n, funcArr); printf(p存储的地址%p\n, p); return 0; }运行结果直接使用数组Add(10, 5) 15Sub(10, 5) 5通过指针调用Add(10, 5) 15Sub(10, 5) 5地址信息funcArr地址0x7ffc5a3b2b20funcArr地址0x7ffc5a3b2b20p存储的地址0x7ffc5a3b2b20六、注意点1.funcArr和funcArr的区别虽然打印的地址值相同但类型完全不同funcArr类型是int (**)(int, int)指向函数指针的指针funcArr类型是int (*(*)[2])(int, int)指向数组的指针2. 指针运算的差异printf(funcArr 1 %p\n, funcArr 1); // 前进8字节一个指针大小 printf(funcArr 1 %p\n, funcArr 1); // 前进16字节整个数组大小这就是为什么类型很重要——决定了指针运算的步长。3. 如何正确访问// 正确先解引用再下标访问 int result1 (*p)[0](10, 5); // 错误试图直接下标访问 int result2 p[0](10, 5); // 编译错误记住要先解引用才能取元素七、总结本节我们了解了什么指向是函数指针数组的指针并了解了它的简单用法。本节内容不做重点只需了解即可考试和实际开发使用的并不多。完结撒花指针系列的探索之路至此已抵达终点。从最基础的指针概念出发我们一路经历了字符指针、指针数组、数组指针的层层递进攻克了函数指针这一重要关口直至本篇的指向函数指针数组的指针。这一路走来宛如攀登一座知识的山峰每一步都见证了思考的深度。学习指针的道路绝非坦途相信许多同学都曾经历过困惑与挣扎——那些面对复杂声明时的迷茫调试指针错误时的挫败都是成长路上必经的风景。不必焦虑更不必自我怀疑因为每一位C语言学习者都曾走过相似的路径。回顾我的学习历程也是通过一行行代码的实践、一篇篇笔记的积累、一次次错误的修正才逐渐拨开迷雾看清指针世界的真实面貌。我相信所有真诚的努力都不会被辜负愿大家在编程的道路上一往无前用代码书写属于自己的精彩篇章希望讲解的内容能帮助到各位同学如有错误或更好的建议还望指出 ~谢谢大家
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

旅游网站作用网站开发微信公众号自定义菜单

RuoYi-Vue3企业级管理系统:5分钟快速搭建前后端分离框架 【免费下载链接】RuoYi-Vue3 🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统 项目地址: …

张小明 2025/12/27 3:04:09 网站建设

静态网站怎么做公司官网介绍

C# Array 类查找 / 条件判断核心知识点总结以下是脱离具体赋值、聚焦通用语法和核心逻辑的知识点梳理,覆盖Array类常用条件操作方法的核心规则:一、核心定位Array类的这些静态方法是 C# 提供的数组条件操作工具,无需手动写循环遍历&#xff0…

张小明 2025/12/27 3:03:37 网站建设

汕头企业网站建设流程三门峡建设银行网站

PaddlePaddle深度学习平台性能评测:对比TensorFlow与PyTorch 在AI技术加速落地的今天,一个常被忽视的问题浮出水面:为什么很多企业在选型深度学习框架时,开始从TensorFlow和PyTorch转向PaddlePaddle?尤其在中国市场&am…

张小明 2025/12/27 3:02:33 网站建设

网站标题关键优化能进入危险网站的浏览器

Joy-Con Toolkit终极指南:免费开源手柄定制工具完全解析 【免费下载链接】jc_toolkit Joy-Con Toolkit 项目地址: https://gitcode.com/gh_mirrors/jc/jc_toolkit Joy-Con Toolkit作为一款专为任天堂Switch手柄设计的开源控制软件,为游戏玩家提供…

张小明 2025/12/28 6:08:36 网站建设

做门户网站用什么程序做蔬菜的网站有哪些

React Postprocessing是专为React Three Fiber设计的后期处理神器,让你用最少的代码实现专业级的WebGL视觉效果。无论你是Three.js新手还是资深开发者,都能快速上手这款强大的React后期处理工具。 【免费下载链接】react-postprocessing 📬 p…

张小明 2025/12/27 3:00:58 网站建设

荣成市信用建设网站怎样一个域名做两个网站

2025年12月7日,中国科学技术信息研究所(简称中信所)在第二届玉渊潭科研诚信会议发布了《2025年度国际期刊预警名单》,103种期刊入列,较去年增加52种,创2018年以来入列数量新高。据悉,中信所每年…

张小明 2025/12/27 3:00:26 网站建设