出售东西的网站怎么做重庆市招标网官网

张小明 2026/1/2 2:39:14
出售东西的网站怎么做,重庆市招标网官网,一个网站的建设步骤是,wordpress 编辑器 视频教程上节回顾#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进行投诉反馈,一经查实,立即删除!

内部网站建设广州建站模板搭建

基于PyTorch的图像分类项目上传至GitHub完整流程 在深度学习项目开发中,一个常见的困境是:模型在本地跑通了,但换台机器就报错——“CUDA not available”、“No module named ‘torchvision’”、或是版本冲突导致训练结果无法复现。这种“…

张小明 2026/1/1 1:52:52 网站建设

大学生做网站主题农业科技工作服务站建站模板

YOLOv8能否识别文本?OCR扩展应用场景探讨 在智能文档处理、工业自动化和视觉辅助系统日益普及的今天,一个现实问题摆在开发者面前:如何快速、准确地从复杂图像中提取出文字信息?传统的OCR(光学字符识别)工具…

张小明 2026/1/1 1:52:20 网站建设

注册网站怎么做网站商城网站建设天软科技

第一章:Open-AutoGLM Web地址无法加载的现象分析当访问 Open-AutoGLM 的 Web 地址时,部分用户反馈页面长时间无响应或直接显示空白,该现象可能由多种因素共同导致。为系统性排查问题,需从网络、服务端与客户端三个维度进行深入分析…

张小明 2026/1/1 1:51:48 网站建设

河北网站设计公司中国建设监理协会网站会员专区

当你的USB转串口“失声”:一次由VID/PID引发的驱动困局与破局之路 你有没有遇到过这样的场景? 一块开发板插上电脑,系统“叮”地一声提示设备接入,任务栏也弹出了通知——但打开设备管理器一看, 一个黄色感叹号赫然…

张小明 2026/1/1 1:51:16 网站建设

政务公开 网站建设滞后北京网站制作百度推广

如何快速配置Cursor Reset工具:免费试用期重置完整指南 【免费下载链接】cursor-reset Cursor Trial Reset Tool 项目地址: https://gitcode.com/gh_mirrors/cu/cursor-reset Cursor Reset是一款专业的开源工具,专门用于重置Cursor编辑器的试用期…

张小明 2026/1/1 1:50:44 网站建设

会展免费网站模板长垣住房和城乡建设局 网站

Vial-QMK 终极指南:5步快速打造你的专属机械键盘 【免费下载链接】vial-qmk QMK fork with Vial-specific features. 项目地址: https://gitcode.com/gh_mirrors/vi/vial-qmk 想要彻底掌控你的机械键盘体验吗?Vial-QMK开源键盘固件为你提供了前所…

张小明 2026/1/1 1:50:12 网站建设