- 博客(51)
- 收藏
- 关注
原创 一篇搞定四大核心算法:双指针、滑动窗口、二分、前缀和
本文总结了四大核心算法(双指针、滑动窗口、二分、前缀和)中的双指针算法及其典型应用。双指针主要包括对撞指针(用于有序数组)和快慢指针(用于链表/循环检测)。通过6道经典题目展示了双指针的具体实现: 移动零:通过快慢指针划分非零/零区间 复写零:从后向前复写避免覆盖 快乐数:快慢指针判环 盛水容器:对撞指针求最大容积 有效三角形:排序后固定最长边+双指针 和为目标值:有序数组对撞指针 每道题均包含题目链接、描述、算法思路、C++代码实现和易错点分析,突出双指针在不同场景下的灵活应用。这些题目覆盖了数组处理、链
2026-01-18 23:32:53
629
原创 《C++ STL 关联式容器完全指南:深度解析 map 与 set 的使用》
本文深度解析C++ STL中的关联式容器map与set,对比其与序列式容器的差异。set系列容器具有自动去重和排序特性,基于红黑树实现,时间复杂度为O(logN)。文章详细介绍了set的构造、插入、查找等接口,并提供了multiset的应用示例。map容器存储键值对,支持快速查找,重点解析了operator[]的三重功能和四种插入方式。通过统计单词频率、环形链表检测等经典例题,展示了关联式容器的实际应用场景。全文通过代码示例和易错点提示,帮助读者深入理解关联式容器的核心特性和使用方法。
2026-01-05 21:55:00
1111
原创 《二叉搜索树:动态数据管理的利器,平衡树的基石》
二叉搜索树(BST)是一种高效管理动态数据的数据结构,其核心特性是左子树节点值≤根节点值≤右子树节点值。BST支持快速查找、插入和删除操作,时间复杂度在最优情况下为O(logN),但最坏情况下会退化为O(N)的单支树。文章详细解析了BST的插入、查找和删除操作,特别是删除操作中替换法的实现细节,并提供了完整的Key-Value版代码实现。BST相比二分查找的优势在于动态数据维护,适用于需要频繁插入删除的场景。最后通过单词计数器示例展示了BST的实际应用价值。
2026-01-04 20:23:18
1018
1
原创 C++ 多态:一篇吃透所有考点
C++多态核心总结:运行时多态三大条件与底层原理 本文深入解析C++运行时多态,重点解决开发中常见的三大痛点:1)必须通过继承建立类关系;2)基类虚函数必须被派生类正确重写(注意函数签名一致和override关键字的使用);3)必须使用基类指针或引用来触发动态绑定。特别强调了虚析构函数的重要性,避免内存泄漏。底层原理层面,揭示了虚表指针(vfptr)和虚函数表(vtable)的工作机制,通过虚函数地址的动态查找实现运行时多态。掌握这些核心要点,即可高效运用多态并规避常见陷阱。
2025-11-11 19:48:22
892
1
原创 《别再被 C++ 继承绕晕!从隐藏规则到虚继承,一篇理清所有混乱》
摘要:C++继承机制解析 C++继承机制通过基类与派生类的层级关系实现代码复用和层次化设计,但存在诸多易混淆点:1)继承方式(public/protected/private)会影响基类成员在子类中的访问权限,优先使用public继承;2)子类同名成员会"隐藏"基类成员,需显式指定基类::成员访问;3)派生类构造/拷贝/赋值时需显式处理基类部分;4)切片规则允许子类对象赋给基类指针/引用,但反向转换需谨慎。此外,菱形继承涉及虚继承解决数据冗余问题。理解这些核心机制能有效避免继承陷阱。
2025-11-09 19:32:28
944
原创 《C++从模板初阶到进阶,教你写出通用且可维护的代码》
摘要 本文系统讲解了C++模板技术,从函数模板到类模板,帮助开发者编写通用且可维护的代码。主要内容包括: 模板基础:通过交换函数案例展示模板如何解决代码重复问题,实现泛型编程。 函数模板: 定义格式与使用场景 编译原理:编译器自动生成具体函数 隐式/显式实例化及参数匹配规则 类模板: 定义方式与成员函数实现 以通用栈类为例展示容器实现 模板参数与成员变量类型关联 模板优势: 提高代码复用率 增强扩展性和可维护性 支持创建通用容器 全文通过大量代码示例和类比讲解,使抽象概念易于理解,适合C++开发者系统学习模
2025-11-04 21:20:04
658
1
原创 《从适配器本质到面试题:一文掌握 C++ 栈、队列与优先级队列核心》
本文深入解析C++中栈(stack)、队列(queue)和优先级队列(priority_queue)的核心特性与应用。首先指出它们本质是容器适配器,通过封装底层容器(默认deque)提供简化接口。栈遵循LIFO原则,经典应用包括最小栈和逆波兰表达式求值;队列遵循FIFO原则,可用于实现栈功能。文章通过源码分析接口设计,并给出典型应用场景的解决方案,强调性能优化与异常处理技巧,帮助开发者深入理解这些数据结构的底层实现与实战应用。
2025-11-03 18:28:50
802
2
原创 STL list深度解析:从原理到手写实现
STL list深度解析:从原理到手写实现 本文深入剖析STL list的核心原理与实现细节。首先分析list作为双向循环带头链表的优势,能够实现O(1)时间复杂度的任意位置插入/删除操作。文章详细介绍了list的关键接口及其应用场景,并重点讲解了手写实现方案: 定义节点结构list_node,包含数据域和前后指针 实现迭代器list_iterator,封装指针操作,支持前进后退等操作 构建list类,管理头节点并提供增删改查等接口 通过对比vector,突出list在频繁插入删除场景下的性能优势,帮助开发
2025-10-28 22:00:31
693
2
原创 《vector.pdf 深度解读:vector 核心接口、扩容机制与迭代器失效解决方案》
摘要:本文深入解析C++中vector容器的使用与底层原理。首先介绍vector的4种构造方式和3种遍历方法,重点分析增删改查操作中的迭代器失效问题。详细讲解resize与reserve的区别及空间管理技巧,通过代码示例验证不同编译器的扩容机制(VS 1.5倍/g++ 2倍)。最后揭示vector底层通过三个指针管理内存的核心机制,帮助开发者从"会用"进阶到"明理",避免实际开发中的常见陷阱。
2025-10-18 21:20:42
1172
原创 前端新手必看!CSS核心内容梳理:从语法规范到弹性布局,学完就能用
本文总结了CSS入门必备的核心知识,包括:1)CSS的作用是为HTML页面添加样式和布局;2)3种CSS引入方式的优缺点及适用场景;3)8种常用选择器(基础+复合)的精准定位方法;4)字体、颜色、背景等常用样式属性的实际应用技巧。文章通过实例讲解CSS语法规范、代码风格和常见错误,帮助前端新手快速掌握关键技能,解决样式不生效、布局错乱等实际问题。重点强调选择器的组合使用、样式优先级控制以及外部样式表的最佳实践,适合作为CSS入门参考资料。
2025-10-18 19:13:44
1236
1
原创 HTML 零基础入门到实战:从骨架到页面的完整指南
本文系统介绍了HTML的核心知识体系,包括基础语法、常用标签、页面布局和表单交互。内容涵盖HTML的基本结构、文本/图片/链接等常用标签的使用方法,以及表格、列表和表单等核心组件的开发技巧。通过博客和简历等实战案例,帮助开发者掌握HTML页面构建能力,并提供了高效工具和常见问题解决方案。特别强调标签语义化、路径规范等易错点,适合零基础开发者系统学习网页开发基础。
2025-10-16 18:59:43
919
2
原创 聚焦string:C++ string 核心接口、编译器差异与自定义实现的深度剖析
本文系统讲解了C++ string类的核心知识点与实际应用。首先对比C语言字符串痛点,指出string类在内存管理、操作便捷性等方面的优势。接着介绍C++11的auto与范围for语法,为后续string操作奠定基础。重点剖析标准库string类的核心接口,包括构造、容量管理、元素访问和修改操作,并附实战代码演示。此外,还探讨了不同编译器下string的底层实现差异,提供6道OJ题解作为实战训练。最后通过模拟实现自定义string类,深入讲解深拷贝与现代C++编程技巧,附带完整代码与测试用例,帮助开发者避开
2025-10-13 20:27:12
1047
5
原创 内存管理深度解析:从 C 到 C++ 内存管理全攻略,避坑指南 + 面试考点
本文系统讲解了C/C++内存管理核心知识,包括内存区域划分、动态内存管理函数对比、底层实现原理及常见陷阱。主要内容有:1. 详细解析栈、堆、数据段等内存区域分布;2. 对比malloc/calloc/realloc特性及使用场景;3. 剖析C++的new/delete实现原理及其与malloc/free的区别;4. 介绍定位new表达式等高级用法;5. 总结10个常见内存错误及解决方案。掌握这些知识能有效避免内存泄漏、野指针等问题,提升程序健壮性。
2025-10-03 12:12:36
891
5
原创 C++类和对象:从踩坑到精通(解决90%初学者的痛点)
C++类与对象核心要点速览 本文针对C++初学者常见痛点,用实例讲解类和对象的核心概念: 类定义关键点: class与struct区别:默认访问权限不同(private/public) 成员变量命名规范:推荐加前缀(或m)区分参数 类外定义函数必须加作用域(ClassName::) 对象内存原理: 类不占内存,对象只存储成员变量 成员函数存在代码段,所有对象共享 空类对象占1字节(保证地址唯一性) this指针机制: 编译器自动为成员函数添加隐藏的this参数 函数内访问成员实际通过this指针实现 空指针
2025-09-28 21:06:30
772
4
原创 初学者必看,带你攻克C++入门痛点
摘要: 这篇博客针对C++新手常见痛点(变量重名、输入输出繁琐、引用与指针混淆等),通过生活类比和代码案例拆解核心知识点。内容涵盖C++学习路线(语法、STL、数据结构)、命名空间(解决命名冲突的"文件夹"方案)、智能输入输出(cin/cout优化)、缺省参数(灵活函数调用)和函数重载(同名函数实现多态)。每个知识点按"问题→原理→解决方案"逻辑展开,并提供避坑指南(如禁止使用using namespace std、缺省参数声明规则等),帮助新手快速掌握80%的入门难
2025-09-20 21:16:37
917
5
原创 《排序算法全家桶:从基础冒泡到高级快排(Hoare / 指针 / 三路),再到文件外排,零基础也能懂》(含动图图解)
本文系统介绍了7种经典排序算法,包括冒泡排序、选择排序、插入排序、希尔排序、快速排序、堆排序和归并排序。每种算法从核心思想、代码实现、动图演示、复杂度分析和应用场景进行全面解析,并提供了优化版本和易错点提示。通过百万级数据测试对比各算法性能,帮助读者深入理解排序算法的原理与实现,掌握不同场景下的最佳选择。文章还涵盖了外部排序和文件归并等高级主题,为处理大数据集提供了实用解决方案。
2025-09-08 23:40:41
826
原创 《从零搭建二叉树体系:从节点定义到子树判断的实战指南(含源码可直接运行)》
本文系统介绍了二叉树的基础概念、构建方法和常用操作。主要内容包括:1)二叉树的基本术语和特殊类型(满二叉树、完全二叉树等);2)环境准备与代码目录结构;3)二叉树的两种构建方式(手动创建和先序遍历字符串构建);4)深度优先遍历的三种实现(先序、中序、后序);5)计算节点数、树高度等基本属性;6)经典算法题解析,如翻转二叉树。文章特别强调了递归实现的易错点和注意事项,为二叉树学习提供了清晰的实践指导。
2025-09-02 20:06:27
1058
原创 《揭秘堆的工作原理:从代码细节看堆的构建与操作》
本文介绍了堆数据结构的完整实现,包括小堆的核心算法和代码实现。主要内容有: 堆的结构设计:使用动态数组存储元素,包含大小和容量信息; 核心算法:详细解析了向上调整(AdjustUp)和向下调整(AdjustDown)算法,这是维护堆性质的关键; 基本操作:实现了堆的初始化、销毁、插入、删除等操作; 测试验证:通过测试代码验证堆功能的正确性。 文章特别标注了大堆与小堆的实现差异,只需修改比较逻辑即可转换。堆结构在优先队列和堆排序等场景有重要应用,本文的完整实现帮助读者深入理解其原理。
2025-08-28 20:34:31
1491
原创 《轻量级队列模块编写:C 语言代码 + 测试示例全解析》
本文介绍了队列的基础实现与栈转队列的方法。队列采用链式结构实现,包含初始化、入队、出队等基本操作,使用双指针(队头、队尾)确保O(1)时间复杂度。测试验证了FIFO特性。第二部分通过LeetCode 232题,演示如何用两个栈模拟队列:输入栈接收元素,输出栈提供队列前端元素,通过栈间元素转移实现先进先出。代码实现展示了栈和队列的核心操作逻辑,为解决类似问题提供了通用思路。全文从基础到应用,循序渐进地讲解了队列的核心概念和实际应用场景。
2025-08-25 16:42:01
1146
1
原创 一文吃透栈结构:从基本操作到算法应用,零基础也能轻松掌握
本文介绍了栈的基本概念、实现及其应用。栈是一种遵循"后进先出"原则的线性表,支持入栈、出栈等基本操作。文章详细解析了基于动态数组的栈实现代码,包括初始化、销毁、扩容策略等关键操作,并指出常见错误(如函数名拼写错误)。通过括号匹配的经典案例,展示了栈在算法中的实际应用,强调栈在解决成对匹配问题时的高效性。测试代码演示了栈的操作流程,验证了实现的正确性。
2025-08-19 21:26:23
1714
3
原创 算法复杂度深度解析:时间与空间的权衡艺术
本文系统介绍了算法复杂度分析的核心知识,重点讲解了时间复杂度和空间复杂度的概念、计算方法及实际应用。文章首先通过斐波那契数列案例说明算法优化的重要性,进而详细阐述了大O表示法的推导规则和三种复杂度情况(最好、最坏、平均)。通过冒泡排序、二分查找、递归等经典实例,具体分析了不同算法的时间复杂度(O(1)、O(N)、O(N²)、O(logN)、O(2ⁿ)等)和空间复杂度计算方法。最后总结了常见复杂度的增长趋势,并提供了OJ题目的复杂度优化实战案例。全文强调复杂度分析在算法优化和面试中的重要性,特别指出随着存储成
2025-08-17 20:55:17
1146
原创 告别边界条件噩梦!双向循环链表(哨兵位)实现技巧与避坑指南
本文详细介绍了带哨兵位的双向循环链表的实现原理与核心操作。链表通过头节点统一操作逻辑,每个节点包含前驱和后继指针,形成闭环结构。主要功能包括:节点创建、链表初始化、打印输出、头插尾插、头删尾删、元素查找、指定位置插入删除等操作。代码实现中注意处理指针关系,避免内存泄漏,并通过断言确保操作合法性。这种数据结构在插入删除操作上具有O(1)时间复杂度优势,适用于需要频繁增删的场景。
2025-08-15 20:10:53
1552
1
原创 深入浅出单链表:从概念到实战全解析
本文全面解析单链表的核心概念与实现。链表是一种通过指针串联离散节点的线性结构,具有动态内存分配和灵活增删的特性。文章详细介绍了节点结构、物理存储特点,并通过源码解析了单链表的创建、插入(头插、尾插、指定位置插入)和删除(头删、尾删、指定节点删除)等核心操作,重点分析了二级指针的使用、边界条件处理及时间复杂度差异,帮助读者深入理解链表的设计与实现原理。
2025-08-14 00:50:55
1028
2
原创 从顺序表到通讯录实战:用 C 语言打造高效数据管理系统(附完整实现)
本文介绍了动态顺序表的实现原理及其在通讯录中的应用。数据结构是程序中组织数据的"排队系统",顺序表是线性表的一种,基于动态数组实现,支持高效随机访问。文章详细解析了动态顺序表的C语言实现,包括初始化与销毁、扩容策略(2倍扩容)、插入/删除操作的时间复杂度分析,以及边界检查等关键点。通过动态顺序表可实现灵活的数据存储管理,为后续构建通讯录系统奠定基础。
2025-08-10 22:35:15
841
原创 吃透C语言预处理:从符号宏定义到条件编译的实战指南(附避坑技巧)
本文系统讲解C语言预处理的核心机制,包括预定义符号、宏定义、条件编译等关键知识点。重点剖析了带参数宏的使用技巧与陷阱,如运算符优先级、副作用参数等问题,并通过典型示例演示宏与函数的区别。文章还介绍了#和##运算符的高级用法,以及命令行定义、条件编译等实用技术,帮助开发者正确使用预处理功能,提升代码灵活性和可维护性。掌握这些预处理技巧能有效避免常见错误,优化程序结构。
2025-08-09 12:53:34
1339
原创 深度解析C程序的编译与链接:从源代码到可执行程序的旅程
本文深入解析C程序从源代码到可执行文件的完整转换过程,重点剖析翻译环境中的编译与链接机制。首先区分翻译环境(负责生成可执行文件)和运行环境(执行程序)两大核心概念,随后详细拆解翻译环境的四个关键阶段:预处理(处理宏定义、头文件包含等)、编译(词法/语法/语义分析及优化)、汇编(生成机器码)、链接(合并目标文件并解决符号引用)。通过具体示例和GCC命令演示各阶段操作,并指出常见错误点如头文件重复包含、宏展开副作用等,帮助开发者深入理解C程序的底层构建原理。
2025-08-08 19:28:11
944
原创 C语言文件操作从入门到精通——告别数据丢失,掌握持久化存储核心技能
C语言文件操作技术详解:本文系统讲解C语言文件操作的核心技术,包括文件类型(二进制与文本文件)、文件指针、打开/关闭流程及读写方法。重点分析文件持久化存储的必要性,对比内存与文件的特性差异,详细说明文件名结构、路径处理注意事项。通过实例代码演示二进制与文本文件的存储差异,并给出常用文件操作函数的使用方法及易错点提示。文章还介绍了流的概念、标准输入输出流,以及顺序读写和随机读写的实现方式,帮助开发者全面掌握C语言文件处理技术。
2025-08-08 14:53:25
1393
1
原创 C语言动态内存管理全解析:从基础到实战避坑指南
本文详解了C语言动态内存管理的关键知识点。首先介绍了静态内存分配的局限性,说明动态内存分配的必要性。重点讲解了malloc、free、calloc、realloc四个核心函数的使用方法及注意事项,包括参数、返回值特性和使用场景。文章还归纳了六类常见动态内存错误及其解决方案,如空指针解引用、越界访问、重复释放等。最后通过经典笔试题分析,强调了指针传值和内存泄漏的问题。掌握这些知识对于编写健壮高效的C程序至关重要。
2025-08-07 13:38:17
1156
原创 C语言自定义类型深度解析:联合体与枚举
本文详细解析了C语言中的联合体(Union)和枚举(Enum)两种自定义数据类型。联合体通过成员共享内存空间实现内存优化,其大小由最大成员决定并需满足对齐要求,适用于属性不同时使用的场景如礼品单设计和大小端判断。枚举则用于定义离散常量集合,相比#define具有更好的类型安全性和可读性。合理使用这两种类型能提升代码效率和质量,在嵌入式开发等内存受限场景尤为重要。
2025-08-05 15:12:51
1411
原创 C语言自定义类型详解:结构体与位段
本文系统解析了C语言结构体的核心知识点,包括结构体声明、初始化、内存对齐和传参方式。主要内容涵盖:1) 结构体的基本声明格式和自引用技巧;2) 变量的两种初始化方式;3) 成员访问操作符的使用;4) 内存对齐规则及其优化策略;5) 传值与传地址的性能对比。通过具体示例演示了结构体在描述复杂数据类型时的应用,重点分析了内存对齐机制对程序空间效率的影响(如成员排列优化),并对比了不同传参方式的适用场景。全文深入浅出,既有理论规则说明,又包含实践性代码示例,是掌握C语言结构体的实用指南。
2025-08-05 00:42:42
1142
原创 数据在内存中的存储深度解析
摘要: 本文系统解析了C语言中数据的内存存储机制。整数采用补码存储,实现符号位统一处理与加减法简化;多字节数据存在大小端字节序差异,可通过指针或联合体判断当前模式;浮点数遵循IEEE 754标准,按科学计数法拆分符号位、指数和有效数字三部分存储。通过典型代码示例(如字节序检测、类型转换陷阱等)揭示了底层存储规则对程序行为的影响,强调掌握这些原理对避免数据溢出、跨平台兼容性等问题的重要性,为深入理解计算机系统奠定基础。
2025-08-04 16:09:17
828
原创 《C 语言内存函数深度剖析:从原理到实战(memcpy/memmove/memset/memcmp 全解析)》
本文详细解析了C语言中四种核心内存操作函数: memcpy:高效内存拷贝,但不处理重叠区域,需注意目标与源地址不能重叠; memmove:增强版memcpy,支持重叠内存拷贝,通过智能选择复制方向避免数据覆盖; memset:字节级内存初始化,适合清零或设置特定值,但对非char类型需谨慎使用; memcmp:按字节比较内存内容,基于无符号值返回差异结果。 关键要点包括:memcpy/memmove的单位是字节而非元素,memset仅修改低8位,memcmp按字典序比较。文中提供了各函数的模拟实现代码,帮助
2025-08-03 15:55:56
1342
原创 C语言字符函数和字符串函数全解析:从使用到模拟实现
本文介绍了C语言标准库中的字符和字符串处理函数,包括字符分类函数(如isalpha、isdigit等)、字符转换函数(如tolower、toupper)以及字符串操作函数(strlen、strcpy、strcat、strcmp、strncpy等)。通过讲解函数用法、注意事项和模拟实现,帮助读者深入理解其底层逻辑。文章提供了丰富的代码示例,如字符转换案例、strlen的无符号陷阱、字符串拷贝的实现等,使读者能够掌握这些核心函数的正确使用方法和实现原理。
2025-08-02 23:03:47
1282
原创 深入理解C语言指针:从回调函数到数组指针笔试题全解析(下)
本文深入解析C语言指针的核心用法,重点探讨回调函数和qsort排序的实现机制。通过计算器代码优化案例,展示了如何利用回调函数消除冗余逻辑;详解qsort函数原型及使用场景,包括整型数组和结构体数组的排序方法;最后模拟实现qsort的冒泡排序版本,揭示其底层实现原理。全文通过代码示例演示指针的高级应用,帮助读者掌握函数指针、void*类型转换等关键技术。
2025-08-01 23:21:18
1319
原创 深入浅出C语言指针:从数组到函数指针的进阶之路(中)
本文深入解析C语言指针的核心概念与应用,重点涵盖数组与指针的关系、指针进阶类型及字符串处理。首先指出数组名本质上是首元素地址,但存在sizeof和&操作两个例外。通过指针访问数组元素时,arr[i]等价于*(arr+i);数组传参时形参本质是指针而非数组。进阶部分详细讲解二级指针、指针数组和数组指针的区别与用法,特别强调int* p[5](指针数组)与int (*p)[5](数组指针)的本质差异。字符串处理方面,剖析字符指针指向常量字符串的特性及存储机制,并指出二维数组传参时形参应使用数组指针形式。
2025-07-31 09:33:57
1300
原创 深入理解C语言指针(上)
本文深入讲解了C语言指针的核心概念和用法。文章首先介绍了内存和地址的基本原理,包括内存单元的组织方式和地址总线的硬件机制。然后详细解析了指针变量的定义、取地址(&)和解引用()操作符的使用,以及指针变量在不同平台下的大小特性。文章还阐述了指针类型的意义,包括解引用权限和步长差异,并介绍了泛型指针void的用途。通过const修饰指针的不同位置,说明了如何限制指针或其指向内容的修改权限。最后,文章讲解了指针运算(包括算术运算和关系运算)以及野指针的成因和危害。这些内容为全面理解C语言指针提供了坚实基础
2025-07-29 13:31:22
1087
原创 C语言操作符详解:从基础到进阶
本文系统梳理了C语言操作符的核心知识点,包括操作符分类、二进制转换、原码补码表示以及位操作技巧。主要内容涵盖:1)将C语言操作符按功能分为算术、移位、位操作等12类;2)详细讲解二进制与十进制、八进制、十六进制的转换方法;3)分析整数在内存中的原码、反码和补码表示原理;4)深入解析移位操作符(<<和>>)的运算规则及注意事项;5)介绍4种位操作符(&、|、^、~)的功能与经典应用案例,如不借助临时变量交换两数、统计二进制中1的个数等高效算法。通过实例代码和表格对比,帮助开发者
2025-07-28 23:25:01
818
1
原创 C语言函数递归详解
本文详细解析了C语言中的递归函数,从定义、核心思想到限制条件,结合阶乘和整数打印等经典案例演示递归实现。通过对比递归与迭代的效率差异,指出递归适用于逻辑清晰但层次不深的问题,而迭代更适合简单但层次较深的情况。文章还介绍了尾递归优化方案及其实现,并补充青蛙跳台阶、汉诺塔等经典递归问题。最后强调递归"大事化小"的本质,建议根据问题复杂度合理选择递归或迭代,平衡代码可读性与执行效率。
2025-07-27 17:29:59
1189
原创 《C语言实现扫雷游戏:代码解析与博客分享》
本文介绍了使用C语言实现扫雷游戏的完整过程。项目采用模块化设计,分为game.h头文件、game.c功能实现和mytext.c主程序三个部分。核心功能包括:棋盘初始化(InitBoard)、打印棋盘(DisplayBoard)、随机布置雷(SetMine)和排查雷(FindMine)。游戏逻辑通过两个二维数组实现:mine数组存储雷的位置,show数组显示玩家可见区域。玩家输入坐标排查时,程序会检查是否踩雷,并计算周围雷数显示。当所有非雷区域被排查即获胜。该实现展示了基础的数组操作、随机数生成和游戏逻辑处理
2025-07-26 14:15:15
1128
原创 C语言函数知识全解析
本文系统讲解了C语言函数的核心知识点:首先介绍了函数的概念,将其比作工厂加工过程;其次详细说明了库函数的使用方法,包括标准库、头文件作用和函数文档格式;然后重点阐述了自定义函数的语法结构,通过判断闰年等实例展示函数封装逻辑的优势;接着深入分析了形参与实参的区别及内存机制;最后讲解了return语句规则、数组参数传递方式以及嵌套调用和链式访问的实现技巧。全文通过丰富示例和内存视角,帮助读者全面掌握C语言函数的应用要点。
2025-07-25 14:49:58
1136
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅