- 博客(40)
- 收藏
- 关注
原创 C++数据结构高阶|布隆过滤器(Bloom Filter)深度解析:从原理到手写实现,面试高频考点全覆盖
布隆过滤器是一种基于哈希思想的空间高效概率型数据结构,广泛应用于缓存穿透拦截、海量数据去重等场景。它通过"多个独立哈希函数+位数组"的组合实现元素存在性判断,具有空间效率高、查询速度快的特点,但存在一定误判率(假阳性)。文章详细解析了布隆过滤器的核心原理、参数计算、C++/Java实现代码,以及与哈希表的区别,并提供了面试常见问题解答和避坑指南。布隆过滤器特别适合海量数据且允许轻微误判的场景,是Redis等中间件的核心组件,也是大厂面试的高频考点。
2026-05-13 20:36:09
28
原创 C++数据结构高阶|跳表(Skip List)深度解析:从原理到手写实现,面试高频考点全覆盖
跳表(Skip List)是基于 “分层加速” 思想的有序数据结构,核心是多层有序链表(底层为原始数据层,上层为稀疏索引层),通过随机算法生成节点层数维持结构平衡,使查找、插入、删除操作平均时间复杂度达 O (log n),平均空间复杂度 O (n)。它实现简单、无需旋转操作,优于红黑树、AVL 树,是 Redis 有序集合(zset)、LevelDB 等中间件的核心底层结构,也是大厂后端、中间件岗位面试高频考点,重点考察原理、手写实现及场景适配。
2026-05-13 20:27:57
52
原创 C++数据结构高阶|LRU缓存深度解析:从原理到手写实现,面试高频考点全覆盖
本文详细解析了LRU缓存的核心原理与实现方法。LRU(最近最少使用)是一种基于时间局部性原理的缓存淘汰策略,通过哈希表+双向链表的组合结构实现O(1)时间复杂度的get/put操作。文章从设计初衷、核心原理、多语言实现(C++/Java)等方面深入讲解,并对比了LRU与FIFO、LFU等策略的区别。重点提供了面试高频真题的标准答案和避坑指南,帮助开发者从原理理解到手写实现全面掌握LRU缓存。文章强调哈希表负责快速查找,双向链表维护使用顺序,是面试中应对LRU相关问题的关键。
2026-05-13 20:20:19
41
原创 C++数据结构高阶|Trie树(前缀树)深度解析:从原理到面试实战,一文吃透高频考点
本文系统介绍了Trie树(前缀树)的核心原理与面试应用。Trie树通过共享前缀的设计,在字符串前缀匹配场景中具有高效性能(O(k)时间复杂度)和空间优势。文章详细解析了Trie树的节点结构、核心操作(插入、查询、前缀匹配),并提供了C++简化版和完整版实现代码。重点分析了LeetCode208真题解法,总结了5个面试常见误区(如结束节点判断、内存泄漏等),并给出学习建议:掌握基础结构后,通过真题练习巩固应用。Trie树特别适合前缀匹配、字典检索等场景,是面试中区分开发者水平的重要考点。
2026-05-13 20:19:43
44
原创 C++数据结构高阶|B+树深度解析:从底层原理到数据库应用,面试高频考点全覆盖
本文深入解析B+树的核心原理与应用场景,重点针对数据库索引等磁盘存储需求。首先对比B+树与B树、红黑树的区别,强调B+树通过多路平衡设计减少磁盘IO次数,支持高效范围查询的特性。详细讲解B+树的节点结构、阶数规则和核心操作逻辑,包括插入时的节点分裂机制。提供C++简化版实现代码,涵盖插入、查询和范围查询等核心功能。总结面试高频问题及标准答案,指出常见误区,帮助读者系统掌握B+树知识。全文聚焦B+树在数据库索引中的优势,为技术面试提供实用指导。
2026-05-13 20:19:23
38
原创 C++数据结构进阶|图(Graph)详解:从存储到面试高频算法实战
在C++数据结构进阶体系中,图(Graph)是最具通用性、也最考验综合能力的结构——它不像堆、并查集那样有固定的操作模板,而是灵活适配多种复杂场景,涵盖“存储、遍历、最短路径、拓扑排序”等核心考点,是面试中区分基础与进阶水平的关键题型。本文专为C++学习者、面试备考者打造,全程贴合笔试面试场景,延续前序并查集博客的风格,从“为什么需要图”出发,拆解图的核心概念、两种主流存储方式、必备遍历算法,再到面试高频真题解析,帮你从“懂概念”到“能编码、会应用”,彻底吃透图的进阶知识点。
2026-05-12 21:19:06
332
原创 C++数据结构进阶|并查集(Union-Find)详解:从原理到面试实战
本文系统介绍了并查集(Union-Find)数据结构及其在C++中的实现与应用。主要内容包括:1)并查集的核心原理与基础实现;2)路径压缩和按秩合并两大优化技巧;3)完整的C++面试版代码实现;4)高频面试考点解析;5)LeetCode典型题目实战应用。文章强调并查集在解决连通性问题、集合合并等场景中的高效性,其操作时间复杂度接近O(1),是面试必备的数据结构。通过原理讲解、代码示例和真题解析,帮助读者从理解到应用,全面掌握并查集的实现要点和优化技巧。
2026-05-12 20:35:18
205
原创 C++数据结构进阶|堆(Heap)详解:从手写实现到面试高频实战
本文系统讲解了C++中堆数据结构的概念、实现和应用。首先澄清堆与堆内存的区别,强调堆是基于完全二叉树的非线性结构,分为小根堆和大根堆两种类型。详细介绍了数组实现堆的索引规律和核心操作(上浮和下沉),并提供了手写小根堆和大根堆的完整代码示例。文章还讲解了STL中priority_queue的用法及其与手写堆的区别。重点分析了堆在TopK问题、数据流中位数和堆排序等高频面试场景中的应用,给出了具体实现代码。最后总结了面试常见误区并给出学习建议,帮助读者全面掌握堆这一重要数据结构。
2026-05-12 20:25:58
328
原创 C++数据结构进阶|排序:吃透O(n log n)核心算法,搞定面试高频考点
本文系统讲解了C++中四种核心进阶排序算法:希尔排序、快速排序、归并排序和堆排序。希尔排序通过分组插入优化基础插入排序;快速排序采用分治思想实现高效排序;归并排序以稳定性见长;堆排序则利用堆结构特性实现原地排序。文章详细解析了各算法的原理、分步拆解和C++实现代码,并对比了时间复杂度、空间复杂度和稳定性等关键特性。针对C++面试常见考点,提供了手写代码示例和避坑指南,强调理解算法逻辑而非死记硬背。最后建议通过持续练习掌握这些O(nlogn)级排序算法,为处理大规模数据和应对技术面试打下坚实基础。
2026-05-12 20:09:37
802
原创 C++数据结构初阶|排序:从入门到上手,吃透3种基础排序算法
本文介绍了C++初学者必须掌握的三种基础排序算法:冒泡排序、选择排序和插入排序。冒泡排序通过相邻元素比较交换实现排序,逻辑简单但效率较低;选择排序通过寻找最小值并交换减少操作次数;插入排序将元素插入有序区间,在数据接近有序时效率较高。文章详细讲解了每种算法的原理、分步示例和C++代码实现,并对比了它们的时间复杂度、空间复杂度和稳定性等特性。针对初学者常见错误提供了避坑指南,建议通过理解逻辑、勤加练习来掌握这些基础算法,为学习更高效的排序算法打下坚实基础。
2026-05-12 20:07:07
259
原创 数据结构初阶|二叉树入门,从零到一吃透基础
《二叉树入门与实战指南》摘要: 本文系统讲解二叉树核心概念与高频考点,涵盖基础定义、4种遍历方式(前序、中序、后序、层序)的递归/迭代实现,以及最大深度、最近公共祖先等经典题型解析。针对新手常见误区(如遍历顺序混淆、递归终止条件遗漏等)提供避坑指南,强调通过生活类比(家谱)理解树结构,结合代码实战巩固遍历思想。文章指出二叉树是红黑树、B+树等高级结构的基础,掌握其遍历逻辑(DFS用栈、BFS用队列)和性质推导(如节点数计算)是应对面试的关键,建议通过"理解→画图→刷题"三步法实现高效学习
2026-05-11 23:07:10
291
原创 C++智能指针详解:原理、使用及避坑指南
摘要:本文系统讲解C++智能指针的核心原理与应用。重点介绍了RAII机制、三种智能指针(auto_ptr/unique_ptr/shared_ptr)的特性及适用场景,其中unique_ptr独占所有权、shared_ptr共享所有权。文章详细剖析了智能指针的高频坑点,如循环引用、重复释放等问题,并给出解决方案。通过实战案例展示了智能指针在资源管理中的优势,强调优先使用unique_ptr,需要共享时选择shared_ptr并注意避免循环引用。智能指针能有效解决内存泄漏问题,提升代码可靠性。
2026-05-11 17:34:40
521
原创 C++异常处理详解:从入门到实战,避开常见坑
摘要:本文系统讲解C++异常处理机制,涵盖异常概念、核心语法(try-catch-throw)、处理流程及实战应用。重点分析异常传递规则、自定义异常实现方法,并指出4个常见坑点:类型不匹配、资源泄漏、滥用catch(...)和构造/析构函数异常。通过登录系统案例演示异常处理的实际应用,对比异常与错误码的适用场景。文章强调异常处理能有效分离错误检测与处理逻辑,提升代码健壮性,建议结合智能指针管理资源,避免内存泄漏问题。
2026-05-11 17:34:17
315
原创 C++ stack与queue详解:特性、用法、差异及实战选型
本文详细介绍了C++ STL中的stack(栈)和queue(队列)两种适配器容器。stack遵循先进后出(LIFO)原则,核心操作包括push、pop和top;queue遵循先进先出(FIFO)原则,核心操作包括push、pop、front和back。两者默认使用deque作为底层容器,但queue不能使用vector。文章对比了两者的特性差异,列举了常见应用场景(如括号匹配、任务队列),并重点指出了新手易犯的错误(如未判空操作、接口混淆等)。掌握这些容器的特性和正确使用方法,能帮助开发者更高效地处理。
2026-05-11 04:08:20
521
原创 C++ string类详解:从基础用法到实战避坑,新手也能轻松掌握
本文全面介绍了C++中string类的使用方法,从基础操作到实战技巧。主要内容包括:string类初始化、赋值拼接、查找替换等核心操作;与C语言字符数组的转换方法;新手常见错误及解决方案;以及字符串反转、字符统计等实战案例。重点讲解了string类自动管理内存、接口简洁的特点,帮助开发者高效处理字符串任务,避免C语言字符数组的常见问题。文章通过代码示例详细演示了各种操作,适合C++新手快速掌握字符串处理的核心技能。
2026-05-11 04:06:55
553
原创 C++11 入门指南:核心特性详解,从入门到实战
C++11核心特性摘要:C++11是现代C++开发的基础,重点特性包括:1)统一初始化{}简化各类数据初始化;2)auto自动类型推导减少冗余代码;3)范围for循环简化容器遍历;4)nullptr替代NULL避免歧义;5)智能指针(shared_ptr/unique_ptr)实现自动内存管理;6)lambda表达式支持匿名函数。这些特性显著提升代码简洁性、安全性和开发效率。建议优先掌握核心特性,逐步替代传统C++写法,为后续版本学习奠定基础。
2026-05-10 02:41:37
177
原创 续:封装哈希表实现MyUnorderedMap & MyUnorderedSet(复刻STL)
本文介绍如何基于通用链式哈希表封装实现MyUnorderedMap和MyUnorderedSet,完全对标STL的unordered_map和unordered_set。通过复用通用哈希表模板,利用仿函数提取key,实现了两种容器的核心接口(insert、find、erase、operator[]等)。文章详细讲解了代码实现、测试验证、核心知识点(如operator[]原理、哈希表扩容机制)以及进阶优化方向。该实现展示了哈希表的高效性(平均O(1)操作)和复用性,帮助读者深入理解STL关联容器的底层设计逻辑
2026-05-10 02:08:49
391
原创 手撕 C++ 哈希表:从原理到完整实现,彻底吃透哈希映射
本文围绕哈希表实现展开,核心介绍其“数组+哈希函数”的本质的设计,解析实现过程中的关键要点。哈希表通过哈希函数将key映射为数组下标,实现平均O(1)的增删查效率,核心需解决哈希冲突与扩容问题。常用冲突解决方案为链地址法(拉链法),将冲突元素挂在对应下标链表后;当负载因子达到阈值时,采用2倍扩容并重新哈希元素。文章还涵盖哈希函数设计、通用哈希表封装思路,以及实现中的注意事项,帮助读者吃透哈希表底层逻辑,掌握从基础结构到实际封装的完整实现流程。
2026-05-09 01:03:45
362
原创 C++ unordered_map & unordered_set 实用指南:从入门到熟练,避坑必看
本文全面介绍C++中unordered_map和unordered_set的使用方法。这两种基于哈希表的容器具有O(1)的平均时间复杂度,适合高效查找、插入和删除操作。文章详细讲解它们的初始化、核心接口、遍历方式及实战示例,如统计单词频率和数组去重。重点分析了常见坑点:key不可修改、[]误插入、自定义类型需实现哈希函数等,并对比了unordered系列与map/set的适用场景。最后补充了multi版本的使用说明,帮助开发者根据需求选择合适的容器。掌握这些知识能显著提升C++开发效率。
2026-05-09 01:00:56
323
原创 手撕 C++ STL 底层:封装红黑树实现 MyMap & MySet
本文介绍了如何用一棵红黑树同时实现MySet和MyMap容器,复刻STL的设计思想。通过模板参数和仿函数KeyOfT实现底层复用,使红黑树能自动适配存储key的set和存储key-value的map。文章提供了完整的红黑树实现代码,包括插入、查找等操作,并封装了MySet和MyMap类。测试案例展示了容器的基本功能,特别是map的operator[]实现。核心知识点包括:set/map共用红黑树的原理、operator[]的实现机制、以及红黑树与AVL树的比较。该实现完美展现了STL关联容器的设计精髓。
2026-05-08 23:55:04
173
原创 手撕 C++ 红黑树:从原理到完整实现,彻底搞定 STL 底层核心
红黑树是一种高效的自平衡二叉搜索树,通过5条核心规则保证近似平衡:根节点黑、叶节点黑、不连续红节点、黑节点数相同。相比AVL树,红黑树插入删除效率更高(最多旋转2次),适合工程应用。其核心操作包括染色和旋转,插入时默认染红,若父节点红则需调整(分3种情况处理)。STL中的map/set等容器底层采用红黑树实现,兼具排序和高效增删特性。理解红黑树的关键在于掌握其平衡规则和调整逻辑,而非死记代码。
2026-05-08 23:42:50
376
原创 吃透C++ AVL树:原理+完整实现,新手也能轻松上手
摘要:本文全面介绍了AVL树(自平衡二叉搜索树)的原理与C++实现。AVL树通过平衡因子(左右子树高度差≤1)确保操作时间复杂度稳定在O(log₂N),解决了普通BST可能退化为单支树的问题。重点讲解了4种失衡场景(LL/RR/LR/RL)对应的旋转调整方法,并提供了完整的C++实现代码,包括节点结构、插入删除操作和平衡调整。文章还分析了AVL树的性能特点、应用场景,以及新手常见误区。通过有序数据插入测试验证了AVL树的自平衡特性,建议读者通过实践练习加深理解,为学习更复杂的平衡树结构奠定基础。
2026-05-07 23:42:53
380
原创 吃透C++ STL map/set:从入门到实战,新手也能轻松上手
本文详细介绍了C++ STL中的map和set容器。map存储键值对,自动按key排序,适合快速查找value;set仅存储key,自动去重排序。两者底层均为红黑树,提供O(log₂N)的高效操作。文章对比了两者区别,详解核心接口(插入、查找、删除等)的使用方法,并提供实战代码示例。特别指出常见使用误区,如map下标访问会创建不存在的key、不可直接修改set元素等。最后对比了不同容器的适用场景,强调map/set在需要排序和高效查找时的优势。掌握这些容器能显著提升代码效率,是C++开发必备技能。
2026-05-07 23:35:39
342
原创 吃透C++二叉搜索树:从概念到实战,新手也能上手的核心数据结构
在C++数据结构学习中,二叉搜索树(Binary Search Tree,简称BST)是连接基础二叉树与高级平衡树(AVL树、红黑树)的关键纽带,也是STL中set、map、multiset等关联式容器的底层核心基础。很多新手觉得它“看似简单,实则难用”,尤其是删除操作的逻辑的和边界处理,常常陷入误区。今天这篇博客,全程以C++语法为核心,不玩虚的,从“是什么、怎么实现、怎么用、避坑点”四个维度,把二叉搜索树讲透。
2026-05-06 23:07:59
424
原创 吃透C++面向对象核心:继承与多态的实战解析
本文深入讲解C++继承与多态的核心概念及应用。继承通过建立类层次关系实现代码复用,使用public继承方式让子类继承父类成员。多态通过虚函数实现接口统一,允许父类指针调用不同子类的实现。文章详细解析了继承语法、访问控制、重写与隐藏的区别,并通过交通工具案例演示多态的实际应用。特别强调了虚析构函数的重要性以避免内存泄漏,同时指出新手常见误区。最后总结了继承与多态在代码复用和接口统一方面的实际价值,建议通过图形绘制、支付系统等案例加深理解。掌握这些面向对象编程的核心特性,能够编写更灵活、可扩展的代码。
2026-05-06 22:39:57
384
原创 一文吃透C++ STL:从入门到实战,告别重复造轮子
在C++学习进阶路上,STL(Standard Template Library,标准模板库)是提升开发效率的“神器”,也是面试高频考点。很多新手入门时,会花费大量时间手动实现数组、链表、排序、查找等基础功能,不仅效率低下,还容易出现bug。而STL早已将这些通用功能封装成成熟组件,我们只需直接调用,就能快速实现高效、健壮的代码。STL的核心设计理念是泛型编程,基于C++模板实现,做到“一次编写,多类型复用”,彻底解决“重复造轮子”的问题。
2026-05-05 18:10:28
271
原创 一文吃透C++模板:泛型编程从入门到实战
本文系统介绍了C++模板的核心概念与应用,主要内容包括:1. 模板基础:阐述了函数模板和类模板的语法与使用场景,通过"万能模具"比喻说明模板的代码复用优势;2. 进阶特性:详细讲解了模板特化(全特化/偏特化)和C++11可变参数模板的实现方法;3. 实践指导:提供了通用链表实现案例,并总结了5个常见模板使用误区(如参数推导失败、类外实现语法错误等);4. 学习要点:强调模板在泛型编程中的核心地位,建议通过标准库容器加深理解。全文从基础到进阶,结合代码示例系统讲解了模板技术的应用方法与注意
2026-05-05 18:09:06
349
原创 C++内存管理详解:从基础到避坑,一文吃透
本文系统梳理了C++内存管理的核心知识。首先介绍了内存四区(代码段、数据段、栈区、堆区)及其特性,重点对比了new/delete与malloc/free的本质区别。针对常见内存问题,详细分析了new[]与delete混用、野指针、内存泄漏和栈溢出等典型坑点及解决方案。最后推荐使用智能指针(unique_ptr、shared_ptr等)实现自动内存管理。文章强调掌握内存分区、配对原则和智能指针使用是写出高效安全代码的关键,为C++开发者提供了全面的内存管理指南。
2026-05-04 20:30:00
315
原创 一文吃透C++类与对象:从基础语法到实战应用
本文系统介绍了C++中类与对象的核心概念。主要内容包括:类作为对象的模板,包含成员属性和函数;对象的实例化方式(栈和堆);构造/析构函数的作用与实现;常见误区如混淆类与对象、直接访问私有成员等。通过完整的学生类案例,展示了类定义、访问控制、成员函数实现等关键知识点。文章强调面向对象编程的封装特性,指出通过公有接口访问私有成员的重要性,帮助读者掌握C++类与对象的基本用法和核心思想。
2026-05-04 16:46:47
343
原创 数据结构初阶|栈与队列:基于数组/链表的“操作受限王者”
在前两篇博客中,我们先后吃透了「数组」和「链表」这两个基础数据结构——数组凭借连续内存实现高效随机访问,链表依靠指针串联实现灵活删改,它们是数据结构初阶的“基石”。今天我们要学习的「栈」和「队列」,本质上并不是“全新”的结构,而是基于数组或链表实现、对操作做了限制的“特殊线性表”。它们没有数组、链表那么灵活(不能随意插入、删除),但正因为这份“限制”,在特定场景下比数组、链表更高效、更易用。很多新手刚接触栈与队列时,会疑惑“为什么要做操作限制?直接用数组/链表不行吗?
2026-02-11 00:21:42
443
原创 数据结构初阶|链表:打破连续存储的“灵活王者”
本文详细介绍了链表这一基础数据结构。文章首先通过糖葫芦和钥匙串的生动比喻,解释了链表的非连续存储特性及其节点结构。与数组相比,链表在插入/删除操作上具有O(1)的时间复杂度优势,但查询效率较低(O(n))。作者重点讲解了单链表、双链表和循环链表三种基础类型,并提供了C/C++/Python三种语言的实现代码。通过对比数组,文章分析了链表的优缺点和适用场景,如频繁增删的聊天记录、动态扩容的任务队列等。针对新手常见问题,文中总结了5个易错点并给出解决方案,最后通过三个实操练习(遍历、插入、删除)帮助读者巩固链表
2026-02-10 00:39:50
486
原创 数据结构初阶|数组:最基础却最不可或缺的“数据容器”
本文深入浅出地讲解了数组这一基础数据结构。文章从数组的基本概念入手,通过"抽屉"比喻形象解释其特点,并剖析了数组快速访问的底层原理(连续内存存储和下标计算)。详细分析了数组的优缺点:随机访问高效(O(1)),但插入删除效率低(O(n));内存利用率高,但长度固定。针对不同编程语言(C/C++/Python)给出了3个实操练习(遍历、查找、插入),帮助新手掌握数组基本操作。最后总结了数组的核心思想(连续存储、随机访问)和适用场景(数据量固定、频繁查询),为后续学习更复杂的数据结构打下基础。
2026-02-10 00:39:34
582
原创 数据结构初阶|从0到1,读懂程序的“骨架”
这篇文章为编程新手介绍了数据结构的基础知识,重点讲解了3种核心数据结构:数组、链表和栈。作者通过生活化比喻(如"糖葫芦"比喻链表)帮助理解,详细说明了每种结构的特点、优缺点和适用场景(如数组适合频繁查询,链表适合频繁增删)。文章还指出了新手常见误区(如"数据结构越复杂越好"),并提供了1-2周的学习路线建议,强调理解原理比死记硬背更重要。最后鼓励新手先掌握基础,逐步构建完整的知识框架。全文语言通俗易懂,适合零基础学习者入门数据结构。
2026-02-09 00:13:29
562
原创 吃透C语言文件操作:从基础读写到实战应用,新手也能上手
本文系统讲解了C语言文件操作的核心知识,包括文件分类(文本/二进制)、文件指针概念、基本操作流程和常用函数。重点介绍了文本文件的读写方法(fputc/fgetc等)和格式化读写(fprintf/fscanf),并通过学生成绩管理案例演示实际应用。文章特别强调新手易犯的5个错误,如未判断文件打开成功、忘记关闭文件等,并总结文件操作的"三步走"核心流程:打开-操作-关闭。掌握这些内容可帮助开发者实现数据持久化存储,解决程序关闭后数据丢失的问题。
2026-02-09 00:00:27
638
原创 吃透C语言编译链接:从源码到可执行文件,每一步都讲透
本文以通俗语言结合实战操作,详解C语言编译链接的完整流程,帮助初学者摆脱“只会写代码、不懂底层原理”的困境。
2026-02-08 12:24:33
913
原创 深入浅出 C 语言结构体:从基础到实战,新手也能懂
本文全面解析C语言结构体(struct),它是C语言核心自定义复合数据类型,核心功能是将多种不同类型变量封装为逻辑整体,解决了基础数据类型无法描述学生、坐标等复杂对象的问题,提升代码可读性与可维护性。
2026-02-08 12:22:14
886
原创 吃透 C 语言:整数与浮点数的内存存储规则
内存是程序运行的 “仓库”,但整数和浮点数在这个仓库里的 “存放方式” 截然不同 —— 整数采用补码直接存储,浮点数则遵循IEEE 754 标准拆分存储。理解这一差异,能彻底搞懂 C 语言中数值存储、取值范围、精度丢失的本质。1.整数以补码存储,符号位 + 数值位结合,无精度损失,加减法规则统一;2.浮点数遵循IEEE 754,拆分符号位、指数位、尾数位,精度由尾数位长度决定,存在舍入误差;3.实战中需注意浮点数比较方式、整数溢出、类型转换的精度问题,这是 C 语言数值处理的核心易错点。前言。
2026-02-07 01:03:50
718
原创 彻底搞懂 C 语言指针:从本质到实战,新手也能轻松上手
指针是 C 语言的灵魂,也是新手学习的 “拦路虎”—— 有人觉得指针晦涩难懂,有人却能靠指针写出高效、灵活的代码。其实指针的核心逻辑很简单: 指针就是存储内存地址的变量。本文会从指针的本质、基本用法、核心应用到避坑技巧,用通俗的语言和实战案例,帮你彻底吃透指针。一、指针的本质:理解 “地址” 和 “值”内存地址和变量值。1. 内存的 “门牌号”:地址计算机的内存像一排连续的 “小格子”,每个格子有唯一的编号,这个编号就是内存地址(通常用十六进制表示)。● 当你定义变量int a = 10;
2026-02-07 00:42:43
805
原创 C 语言实现扫雷小游戏:从 0 到 1 打造经典控制台游戏
扫雷是 Windows 经典的控制台小游戏,核心逻辑是 “埋雷 - 扫雷 - 判输赢”—— 玩家点击格子,若踩雷则游戏失败,若揭开所有非雷格子则胜利,未踩雷时会显示周围 8 格的地雷数量。本文会用 C 语言一步步实现这个小游戏,涵盖数组、分支循环、函数封装、坐标处理等核心知识点,新手也能跟着做。一、游戏核心思路拆解在动手写代码前,先理清扫雷游戏的核心逻辑,避免思路混乱:1.数据存储: 用两个二维数组分别存储 “地雷分布”(雷区数组)和 “玩家看到的界面”(显示数组);
2026-02-06 18:21:14
738
原创 吃透 C 语言分支循环语句:从入门到熟练
分支和循环是 C 语言程序流程控制的核心,也是从 “顺序执行代码” 迈向 “灵活控制程序逻辑” 的关键一步。本文会用通俗易懂的方式讲解 C 语言中分支语句(if-else、switch)和循环语句(while、for、do-while)的用法、核心逻辑和避坑技巧,帮你彻底掌握这两类基础但重要的语法。一、分支语句:让程序 “做选择”分支语句的核心是 “条件判断”—— 程序根据指定条件的真假,执行不同的代码块。C 语言中常用的分支语句有两种:if-else 和 switch。
2026-02-06 17:15:18
788
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅