自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

晨非辰的学习记录博客~~

博客主要分享有关编程语言学习记录笔记,目前收有专栏:《C语言》、《C语言刷题合集》,期待与你们一起学习进步!

  • 博客(94)
  • 收藏
  • 关注

原创 C++ 波澜壮阔 40 年:引用、内联函数与现代空指针,效率跃升三基石

C++入门:引用、内联函数、nullptr,三部分内容

2025-12-08 08:15:00 4763 253

原创 C++ 波澜壮阔 40 年:从 C with Classes 到现代 C++ 的进化史诗

C++经过四十余年发展,从“C with Classes”演进至现代C++,核心里程碑包括标准化(C++98)和现代范式革新(C++11至C++20)。学习推荐使用cppreference.com和经典三部曲:《C++ Primer》掌握语法、《STL源码剖析》深入泛型设计、《Effective C++》习得工程实践。命名空间(namespace)通过域隔离解决命名冲突,使用时需遵循“头文件禁用using、源文件局部展开、优先显式限定”原则。初学应通过`iostream`和域限定符理解编译器查找逻辑,避免全

2025-11-24 08:15:00 6741 230

原创 吃透C++两大默认成员函数:const成员函数、 & 取地址运算符重载

本文围绕C++中const成员函数与取地址运算符重载两大核心知识点展开,明确二者是类设计的关键及高频考点。const成员函数以“只读约束、权限匹配”为核心,约束成员变量修改并解决const对象调用问题;取地址运算符重载需遵循“非必要不重载、配套const版本”原则,规范自定义类地址获取逻辑。二者均可提升代码严谨性、帮助避开语法坑,助力理解C++核心设计思想,为后续进阶学习奠定基础。

2026-05-06 08:30:00 818 91

原创 Linux调试神器GDB/CGDB速查手册:断点、变量追踪、调用栈一网打尽

本文介绍Linux下C/C++程序调试要点:默认编译为Release版本无调试信息,需通过`gcc -g`生成Debug版;详细讲解GDB/CGDB常用命令、断点管理、单步执行、变量查看、调用栈回溯等基础操作,并介绍watch监视、条件断点等进阶调试技巧,助力高效定位程序bug。

2026-04-14 08:45:00 1429 112

原创 Git版本控制速成:提交三板斧/日志透视/远程同步15分钟精通,掌握历史回溯与多人协作安全模型

本文围绕Git版本控制工具展开入门讲解,先结合日常文件版本管理痛点梳理Git诞生背景,明确其作为主流版本控制器的核心定位;重点讲解Linux(CentOS)系统下Git安装方法、Gitee远程仓库搭建与本地仓库创建流程,拆解git add、git commit、git push提交三板斧等核心操作,补充git pull、git log等实用指令;同时针对多人协作中仓库不同步的问题,给出同步解决方案,完整覆盖Git新手入门必备知识点,帮助学习者快速掌握基础版本管理与团队协作操作。

2026-03-30 09:00:00 2169 124

原创 Linux终端输出哲学:从回车换行到进度条实战,掌握缓冲区刷新与ANSI控制,告别输出延迟焦虑

本文为Linux系统编程轻量化实战,依托前期所学知识,拆解回车换行与缓冲区核心原理,结合Makefile自动化构建、多文件编程,从零实现基础进度条;并通过ANSI颜色控制、回调函数优化,升级为动态彩色进度条,完成底层原理到工程实践的知识闭环,夯实Linux环境C语言编程实操能力。

2026-03-23 09:00:00 927 76

原创 Makefile构建哲学:从依赖推导到自动化编译,掌握大型项目的构建逻辑,告别手动编译焦虑

本文围绕Linux自动化构建工具make与配置文件Makefile展开讲解,先点明手动gcc编译的痛点,拆解二者核心关系;再通过实操案例演示基础Makefile写法,详解语法规则、make执行逻辑、伪目标特性及文件时间戳判断机制;接着剖析依赖关系推导流程,最后讲解变量符号、内置函数等进阶用法,实现多文件工程化自动化编译,助力掌握大型项目编译技能。

2026-03-16 09:00:00 3446 153

原创 Linux编译生态哲学:GCC编译四阶段/链接方式/库依赖解析,掌握软件编译的底层逻辑

本文围绕GCC编译器展开,核心介绍其从.c源文件到可执行文件的四阶段编译过程(预处理、编译、汇编、链接),包括各阶段的任务、执行指令及关键作用;同时讲解链接的两种方式(静态链接、动态链接)的定义、实现方式、优缺点,以及静态库与动态库的区别,补充分步编译的实用建议与查看库文件依赖的方法,帮助读者掌握GCC编译底层逻辑与核心用法。

2026-03-09 09:00:00 1818 152

原创 Vim编辑器精讲——从终端命令到肌肉记忆,30分钟掌握高效编辑的核心心法与生态智慧

本文围绕Vim编辑器展开,核心讲解其三大基础模式(命令模式、插入模式、底行模式)的切换与使用,涵盖Vim打开方式、光标移动、文本编辑(删、复制、粘贴等)、底行模式操作及视图模式批量编辑技巧;同时补充终端实用技巧、异常退出文件恢复、用户提权方法,以及Vim全局与个人配置文件的相关知识,助力快速掌握Vim高效编辑能力。

2026-03-04 08:30:00 2251 123

原创 Linux包管理器速成:yum/apt双精要/镜像源加速/依赖解析30分钟通解,掌握软件安装的艺术与生态哲学

本文科普Linux软件包与包管理器核心概念,区分RPM、DEB等常见软件包格式及yum、apt等管理器,解析依赖问题与版本兼容痛点,介绍国内镜像源配置意义,并提供yum、apt的查询、安装、卸载等实操指令,助力Linux新手搞定软件管理。

2026-02-03 09:00:00 2789 132

原创 Linux权限管理速成:umask掩码/file透视/粘滞位防护15分钟精通,掌握权限减法与安全协作模型

本文面向Linux小白,简洁讲解umask权限掩码、file文件类型识别、目录r/w/x权限作用及粘滞位用法,搭配实操命令,快速掌握Linux权限基础核心知识点。

2026-01-28 09:12:42 4817 202

原创 Linux权限实战速成:用户切换/文件控制/安全配置15分钟掌握,解锁核心操作与权限模型内核逻辑

本文围绕 Linux 用户类型与权限实操展开,从Root 与普通用户的区分及su/su - 的环境切换差异入手,深度解析rwx 权限标识及数字法计算规则,并通过chmod、chown、chgrp等核心指令的实战演示,全程贴合小白入门节奏,避开复杂晦涩的理论,聚焦实用操作。掌握本文内容,就能解决大部分 Linux 权限报错问题,轻松应对基础的用户管理与权限修改需求。记得动手实操巩固指令用法,下一篇我们将拆解权限实操中的隐藏疑问,继续解锁 Linux 入门技能~

2026-01-24 09:00:00 3635 183

原创 Linux文件操作实战:压缩/传输/计算10分钟速成,掌握核心命令组合与Shell内核交互秘籍

Linux终端操作是运维和开发必备基础技能。本文重点讲解了tar、scp、bc三个常用指令的使用方法:tar用于文件压缩与解压,支持多种格式;scp实现远程文件传输,基于SSH协议加密;bc是终端计算器,支持数学运算。文中通过实例演示指令操作,并补充面试题和热键技巧,帮助读者快速掌握Linux基础。

2026-01-21 09:00:00 3259 185

原创 Linux运维实战:文件查看/编辑/查找/压缩一条龙,10分钟学会7个高频命令组合应用

本文专为Linux新手整理,聚焦日常高频核心命令,涵盖文件操作类(cat、tac、nano、more、less、head、tail)、数据传输类(管道|)、日期日历类(date、cal)、查找筛选类(find、whereis、grep)、进程监控类(top)及压缩解压类(zip、unzip)。每个指令均搭配语法、实用选项与实操案例,兼顾易懂性与实用性,助力新手快速掌握基础用法,高效应对Linux日常操作需求。

2026-01-20 09:00:00 2217 116

原创 C++波澜壮阔40年|类和对象篇:拷贝构造与赋值重载的演进与实现

本文深入解析C++中的拷贝构造函数和赋值运算符重载机制。拷贝构造函数作为特殊的构造函数,其第一个参数必须是自身类类型的引用,默认实现为浅拷贝。对于含有指针成员的类需自定义深拷贝以避免资源重复释放问题。文章通过栈类示例演示了浅拷贝的缺陷及深拷贝的正确实现方式,并探讨了传值返回与传引用返回的区别。同时指出,当类需要显式定义析构函数释放资源时,通常也需要实现深拷贝构造。这些复制控制机制是C++面向对象编程中对象复制的核心解决方案。

2026-01-19 08:15:00 1242 56

原创 深入浅出Linux:别再说你不懂Linux指令了!一文搞定7个高频指令,让你 Linux 效率翻倍!

本文旨在帮助 Linux 初学者快速跨越入门门槛。文章从指令的本质出发,深入浅出地解析了内部与外部指令的区别及 “一切皆文件” 的设计理念。随后,文章对 which、alias、man、echo、cp、mv 等高频指令进行了详细拆解,并配以真实的实操案例。最后通过汇总表格梳理核心要点,让读者既能理解原理,又能熟练掌握用法。

2026-01-19 08:15:00 2160 81

原创 Linux从零到一:别再右键了!这5个指令让你玩转终端文件管理!

本文系统讲解Linux六大核心文件操作指令:**pwd定位路径、ls查看内容、cd切换目录、mkdir创建文件夹、touch管理文件时间、rm安全删除**。通过“查地图”“开文件夹”等生动比喻,结合实操代码和原理解析,帮助新手快速掌握终端文件管理。包含树状目录结构、文件属性与内容、绝对/相对路径、三种时间戳等关键概念,并提供可直接复制的实战命令。 适合零基础入门,15分钟掌握Linux文件操作精髓。

2026-01-16 08:15:00 1759 86

原创 代码的自由之路,Linux 深度探秘:从贝尔实验室到全球协作,揭秘服务器之王的诞生

介绍计算机发展史,过渡到操作系统的介绍,解密Linux为何为服务器之王

2026-01-12 08:33:44 2505 79

原创 C++波澜壮阔40年|类和对象(中)篇:一文读懂构造与析构,从默认生成到自定义实现

记录了对于类的默认成员函数、构造函数、析构函数的详细知识

2026-01-07 08:00:00 934 23

原创 C++波澜壮阔40年| 类与对象(上)篇:类的封装、实例化与 this 指针详解

介绍了类的相关概念、类的实例化、this指针的机制

2026-01-05 08:15:00 1720 127

原创 基于Win32 API控制台的贪吃蛇游戏:从设计到C语言实现详解

本篇博客详细介绍了如何使用C语言与Win32 API在控制台环境中从零开始开发经典的贪吃蛇游戏。内容不仅涵盖了控制台坐标操作、键盘事件处理等核心技术实现,还系统阐述了游戏的地图设计、逻辑结构与完整编码流程。通过这个项目,开发者可以将C语言的语法知识(如结构体、数组、函数)综合运用于一个完整的、可运行的程序中,从而有效检验和提升对基础编程、模块化设计及系统API调用的实践能力。文末提供了完整的项目源码以供参考。

2025-12-22 08:19:20 1267 93

原创 算法闯关日记 Episode :解锁链表「环形」迷局与「相交」奥秘

环形链表I&II是深入理解链表结构与快慢指针算法的经典课题。**141题(环形链表I)** 的核心在于使用「快慢指针」进行环的**存在性证明**,其关键在于理解“步长差为1则必然相遇”的追及问题本质。在此基础上,**142题(环形链表II)** 进一步要求**定位环的入口**,它巧妙地利用“头节点到入口的距离等于相遇点到入口的距离”这一数学结论,将问题拆解为「检测」与「定位」两个阶段,完整展示了快慢指针不仅能够判断环的

2025-12-01 08:15:00 2115 30

原创 C++ 波澜壮阔 40 年:一览C++三大核心要点 I/O流、缺省参数、函数重载

本文系统解析C++三大核心基础特性:输入输出流、缺省参数、函数重载。其中,输入输出流通过cin/cout实现类型自识别的高效IO操作;缺省参数为函数参数提供智能默认值;函数重载支持同名函数的多态调用。全文将结合代码实例,深入剖析这些特性的使用规则、底层原理及实践技巧,帮助开发者夯实C++基础,规避常见陷阱。

2025-12-01 08:15:00 3338 201

原创 C++ 波澜壮阔 40 年:从基础I/O到函数重载与引用的完整构建

介绍C++的输入输出、缺省参数、函数重载的概念、引用(重难点)

2025-11-28 14:43:23 1648 113

原创 算法闯关日记 Episode :解锁链表新副本——破解「相交」迷局与「回文」谜题

本文详细讲解了两个经典链表问题:相交链表与回文链表的解决方案。对于相交链表问题,通过计算链表长度差,使双指针从相同相对位置开始遍历,实现O(n)时间复杂度的高效查找。对于回文链表问题,提出两种解法:基于数组的快速验证法,以及结合快慢指针寻找中间节点与链表反转的空间优化解法。两种方法分别适用于不同场景,后者尤其满足了O(1)空间复杂度的要求。文章通过图解和代码示例,清晰展示了指针操作的关键技巧,帮助读者掌握链表问题的核心解决思路。

2025-11-24 08:15:00 1272 55

原创 数据结构排序系列指南:从O(n²)到O(n),计数排序如何实现线性时间复杂度

在排序算法的世界中,计数排序以其独特的"非比较"特性脱颖而出。作为一种基于"统计与映射"思想的排序方法,计数排序彻底颠覆了传统比较排序的思维模式,通过巧妙利用数据本身的数值特征来实现排序,在特定场景下能够达到惊人的线性时间复杂度O(n)。本文将从计数排序的核心理念切入,深入剖析其"以数为据"的本质,详细讲解从基础统计到映射定位的完整实现过程,对比不同场景下的空间优化策略,并通过实战代码展示其在实际应用中的价值,帮助你彻底掌握这种高效而独特的排序算法。

2025-11-21 07:41:59 1414 132

原创 【数据结构初阶系列】归并排序全透视:从算法原理全分析到源码实战应用

归并排序采用分治思想,通过递归或迭代实现稳定高效的排序。算法将数组拆分为最小单元后合并,保证O(n log n)时间复杂度。递归实现直观体现分治逻辑,非递归版本通过gap步长控制合并过程,避免递归开销,更适合大规模数据。关键要处理好序列边界条件,确保合并正确性。这一经典算法是理解计算机算法设计与性能分析的优秀范例。

2025-11-18 10:35:17 1398 153

原创 【数据结构】排序详解:从快速排序分区逻辑,到携手冒泡排序的算法效率深度评测

文章通过详尽的图示和代码实例,深入剖析了各算法的实现细节与性能特征。特别针对256位数字排序等特殊场景,分析了算法选择的考量因素。最终通过多维度对比,揭示了在工程实践中如何根据数据规模、性能要求和实现复杂度进行算法选型的智慧,为开发者提供了完整的排序算法应用指南。

2025-11-14 16:17:45 2594 169

原创 【数据结构初阶】--从“最小值筛选”到代码落地,解锁选择排序的核心思想!

在排序算法的修仙世界中,选择排序一脉两大功法——“直接选择排序”与“堆排序”,为争夺“终极话事人”之位展开激烈论道。直接选择排序以朴素思想为核心,通过线性遍历选取极值,实现简单却受限于O(N²)效率;而堆排序凭借“堆”结构的内力加持,将极值选取优化至O(log N),以稳定的O(N log N)性能傲视群雄。本文从思想本质、实现源码到性能特性进行全面对比,最终揭晓谁能执掌选择排序之牛耳,并深入探讨不同场景下的算法选择哲学。这场功法之争不仅展现了算法优化的精妙路径,更启示我们:理解本质,方能万法归宗。

2025-11-08 10:39:18 1305 198

原创 【数据结构初阶】--从排序算法原理分析到代码实现操作,参透插入排序的奥秘!

在排序算法的修仙世界里,插入排序一脉有两大宗门:"直接宗"稳扎稳打,"希尔宗"另辟蹊径。本文将以趣味修仙视角,带你深入探讨直接插入排序与希尔排序的核心原理与性能表现。通过时间复杂度、空间复杂度、稳定性等多维度对比,结合完整代码实现与图解,最终揭晓谁才是插入排序家族中真正的"效率王者"。无论你是算法新手还是修炼多年的程序"道友",都能在这场排序算法的论道中收获新的感悟。

2025-11-06 08:30:00 1498 142

原创 《数据结构风云》:二叉树遍历的底层思维>递归与迭代的双重视角

本文围绕二叉树遍历展开,先强调其是树结构操作基础与算法设计核心。接着详解 LeetCode 上前、中、后序遍历真题的 C 语言实现,包括节点计数、数组开辟、递归存储等步骤,指出易错点。还介绍牛客网根据前序字符串重建二叉树并中序遍历的实现。最后总结遍历规律与关键技术,助力读者深化对递归和树结构的理解,为复杂算法学习奠基

2025-11-02 13:27:33 1227 139

原创 《数据结构风云》递归算法:二叉树遍历的精髓实现

**本文系统解析二叉树四大核心算法:单值验证、树结构比对、子树探测与镜像对称。通过递归分治的思维,层层拆解问题本质,提供清晰的解决路径与代码实现。这不仅是一次算法技巧的传授,更是编程思维的锤炼。后续将深入回溯、动态规划等进阶领域,助你在编程修行路上不断突破。**

2025-11-01 09:26:23 1801 118

原创 【数据结构】感受递归暴力美学:链式二叉树全方位剖析(附源码)

链式二叉树是数据结构中递归思想的完美体现。本文通过前序、中序、后序遍历的递归实现,深入解析二叉树的结构特性与操作逻辑。从节点统计、深度计算到层序遍历,每个操作都展现了递归将复杂问题分解为相似子问题的精髓。掌握链式二叉树不仅是为了理解一种数据结构,更是培养递归思维、为学习更复杂树形结构奠定基础的关键一步。

2025-10-29 08:30:00 1605 142

原创 【数据结构】《自此,每一个想考我堆排序(Top-k问题)的面试官,下场都很尴尬【附完整代码实现】》

堆是一种基于完全二叉树、满足特定顺序性的关键数据结构。本文系统性地探讨了堆的核心实现,包括初始化与销毁、入堆与出堆的核心操作及其关键支撑算法——向上与向下调整。在此基础上,深入剖析了堆排序算法的高效实现,厘清了“真”、“假”堆排序的本质区别与性能差异。进而,将堆的应用延伸至经典的Top-K问题,通过对比建堆算法的优劣,展现了其在海量数据处理中的强大威力。全文从结构实现到算法应用,层层递进,揭示了堆如何将简单的有序性转化为高效的解决方案。

2025-10-22 19:37:29 2176 135

原创 【数据结构入坑指南(七.1)】--《附带图解,深入解析孩子兄弟表示法:处理复杂树结构的终极方案》

本文系统讲解了数据结构中的树形结构。从树的基本定义、形象结构入手,详细解释了节点、度、深度等20+个核心术语。通过孩子兄弟表示法等实例,剖析了树的逻辑结构与实际应用(如文件系统)。进而深入介绍了二叉树、满二叉树、完全二叉树等概念及其特性,并对比了顺序与链式两种存储结构的优劣与应用场景,为学习高级数据结构奠定坚实基础。

2025-10-18 18:04:53 1369 100

原创 【数据结构入坑指南(六)】--《从初始化到销毁:手把手教你打造健壮的队列实现》

本文基于C语言,采用链表结构从零实现队列。详细剖析队列“先进先出”的核心原理,完整讲解初始化、入队、出队、销毁等关键操作,提供可运行的完整代码示例。内容承接栈知识,为后续学习二叉树与堆奠定坚实基础。

2025-10-16 22:01:55 2200 120

原创 【数据结构入坑指南(五)】--《手把手实现栈结构:附带完整代码与注释,深度揭秘数组实现香在哪?》

本文是数据结构与算法系列第五讲,全面讲解栈(Stack)这一重要数据结构。文章从栈的"后进先出"(LIFO)核心特性出发,深入解析栈的基本概念与操作,并通过C语言完整实现栈结构。在内容安排上,首先详细阐述栈的定义和结构特点,分析为何数组实现比链表更具优势。接着逐步实现栈的初始化、销毁、入栈、出栈、取栈顶元素等核心功能,每个操作都配有完整的代码示例和逻辑解析。最后提供可直接运行的完整代码,包含头文件定义、功能实现和测试案例。

2025-10-15 10:55:19 1591 66

原创 【数据结构入坑指南(四.1)】--《超越单链表:双链表“哨兵位”设计模式,让边界处理代码优雅又健壮》

本文完整实现了双链表的所有核心功能,并借助“哨兵位”提升了代码的健壮性。至此,对链表的探索告一段落。接下来,我们将进入一个规则至上的世界,学习在“先进后出”和“先进先出”规则下运作的栈与队列,体验一种截然不同的数据管理哲学。

2025-10-14 09:50:36 1538 73

原创 【数据结构入坑指南(四.2)】--《从单链到双链的进阶,读懂“双向奔赴”的算法之美与效率权衡》

在掌握单链表的基础上,本文带你步入双向链表的进阶学习。我们将聚焦其核心的“双指针”结构,详解如何通过prev和next指针实现数据的双向链接,并动手实现“哨兵位”初始化、头尾插删等关键操作,让你直观感受其在插入与删除效率上的显著提升。

2025-10-12 14:17:20 1950 96

原创 《链表面试基础看点:这里不止“快慢指针”的完美实现,更懂“哨兵节点”的巧妙运用》

链表面试两大高频基础题精讲:手把手教你用“快慢指针”无懈可击地寻找中间节点,以及用“哨兵节点”优雅地合并两个有序链表。一次性夯实双指针应用的核心场景。

2025-10-09 19:52:44 1738 80

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除