- 博客(32)
- 收藏
- 关注
原创 Linux 进程概念与内存管理详解(含冯诺依曼体系结构、环境变量、调度算法)
本文聚焦Linux操作系统核心的进程与内存管理,系统拆解从冯诺依曼体系底层逻辑到虚拟地址空间的8大核心知识点。内容以“原理+实操+生活类比”为核心,涵盖操作系统管理本质、进程创建与状态流转、优先级调度、上下文切换、环境变量特性等关键内容,搭配可直接运行的C语言代码与Linux命令、清晰可视化图解,辅以快递驿站、外卖骑手等生活化案例帮助理解。文章纠正了新手常见认知误区,既适合初学者搭建体系化知识框架,也能为开发者提供实操参考,助力快速吃透进程与内存管理的底层逻辑。
2025-12-12 13:33:06
950
14
原创 Linux基础开发工具(下):调试器gdb/cgdb的使用详解
本文聚焦Linux下gdb/cgdb调试工具,面向开发初学者与需复习工具用法的开发者。首先介绍程序Release与Debug两种发布模式,强调Debug模式需通过`-g`参数编译以保留调试信息。接着详细拆解gdb核心命令,涵盖启动退出、断点设置、单步执行、变量查看与修改等基础操作,以及监视变量、条件断点等高级技巧。随后讲解cgdb的安装、可视化优势与基础操作,通过实战案例演示如何定位并修复代码BUG。最后梳理程序崩溃、循环错误等常见场景的解决方案,助力开发者快速掌握调试技能,提升问题排查效率。
2025-12-08 20:30:40
772
14
原创 Linux基础开发工具(中):Git版本控制
本文围绕 Git 这一开发必备工具,从其诞生背景(Linus 为解决 Linux 内核协作难题开发)切入,解析核心概念与工作流程,梳理了 Linux 下的安装配置、本地仓库操作、远程仓库同步(Gitee/GitHub)的完整流程,还补充了版本回退、忽略文件、免密码提交等高频实用操作。Git 的核心价值在于通过分布式架构与多区域流转,自动追踪版本、简化协作,规避冲突与版本混乱。学习关键是理解 “工作区 - 暂存区 - 仓库” 逻辑,而非死记命令,掌握这些可满足 80% 日常开发需求。
2025-12-04 16:11:54
939
8
原创 Linux基础开发工具(上):从包管理到“进度条”项目实战,掌握 yum/vim/gcc 核心工具
本文聚焦Linux开发基础核心链路,系统梳理了从软件安装到项目实战的关键工具与流程。先介绍yum/apt包管理器的查询、安装、卸载操作及国内镜像源配置,解决依赖与下载慢问题;再详解Vim编辑器的模式切换、常用命令与配置方法;随后拆解gcc/g++的四阶段编译流程及静动态链接差异,接着通过案例讲解Makefile自动化构建逻辑。最后以进度条项目实战整合所有工具,帮助Linux开发入门者快速掌握“软件安装→代码编辑→编译构建”核心技能,打通基础开发链路。
2025-12-03 22:07:15
1157
2
原创 Linux 入门宝典:初识系统 + 核心指令实操指南(小白必看)
本文是一份面向Linux初学者与复习者的实用指南,从系统认知、远程登录到核心指令、权限管理,层层拆解Linux基础核心知识。通过“代码示例+可视化图表”形式,详细讲解ls、cd、tar等常用指令的用法,深入解析权限逻辑与粘滞位等关键概念,覆盖服务器、云计算等多场景应用。内容兼顾易懂性与实操性,既梳理清晰知识框架,又提供可直接复用的实战技巧,助力读者快速入门Linux,巩固基础并逐步向精通进阶。
2025-12-01 23:44:42
581
5
原创 C++智能指针详解
本文围绕C++智能指针展开,详解其基于RAII的核心设计思想,梳理`unique_ptr`(单所有权)、`shared_ptr`(共享引用计数)、`weak_ptr`(解循环引用)等标准库实现的特性与适用场景。同时涵盖删除器定制、线程安全(`mutex`同步)、内存泄漏规避等关键问题,对比智能指针演进历程,结合代码示例拆解核心原理。旨在帮助开发者掌握智能指针的选型与实操,借助其自动资源管理能力,提升代码健壮性,告别手动`new/delete`的繁琐与风险。
2025-11-27 20:25:15
1131
5
原创 C++中的异常
本文聚焦C++异常处理核心知识点,从异常的概念、抛出与捕获机制入手,详解栈展开、类型匹配规则(含3种特殊转换)、异常重新抛出等关键逻辑。结合实际场景,分析异常安全问题与解决方案,介绍异常规范的用法,并对比标准库异常体系与自定义异常设计。通过清晰示例与实用技巧,展现异常处理如何摆脱错误码的冗余传递,实现错误检测与处理的分离,帮助开发者掌握这一构建稳健、可维护C++程序的核心工具。
2025-11-26 21:42:57
945
3
原创 C++11中的包装器
# 博客概述`std::function` 与 `std::bind` 是 C++11 核心特性,专为解决可调用对象类型混乱、接口适配繁琐的痛点而生。`std::function` 作为“万能容器”,统一普通函数、lambda、成员函数等各类可调用对象的类型,简化声明与传递;`std::bind` 作为“参数适配器”,可灵活固定参数、重排顺序,轻松适配不同接口。二者配合,在回调函数、命令映射、表达式求值等场景中优势显著,既能减少冗余代码,又能提升代码可读性与扩展性,是 C++ 高效编程的实用工具。
2025-11-25 23:51:58
664
4
原创 C++11中的lambda表达式详解
本文聚焦C++11核心特性Lambda表达式,解析其语法、机制与实用价值。Lambda为匿名函数对象,基础语法支持捕捉列表、参数列表等部分灵活简化,核心优势是无需定义独立函数或仿函数,可在局部直接封装逻辑,通过值捕捉、引用捕捉等复用上下文变量。文中结合代码示例,展示其在STL算法、变量交换等场景的应用,点明全局Lambda捕捉列表需为空等关键规则。其本质是编译器生成的匿名仿函数,兼具简洁性与灵活性,能降低开发冗余,提升代码可读性与效率,是C++多场景开发的实用工具。
2025-11-24 23:53:23
808
3
原创 C++11中新的类功能
聚焦C++11新增的四大类核心功能,包括默认移动构造/移动赋值、成员变量缺省值、default/delete关键字及final/override关键字。默认移动语义通过“窃取”右值资源优化深拷贝效率,编译器可自动生成或手动实现;成员变量缺省值集中管理默认值,简化构造函数设计;default/delete关键字精准控制默认函数生成,替代C++98隐晦写法;final/override规范继承体系,避免重写错误。这些特性解决了传统类设计的效率、冗余与安全问题,是编写高效、简洁、可维护的现代C++代码的核心基石。
2025-11-23 21:27:31
802
2
原创 C++11可变参数模板
本文聚焦 C++11 可变参数模板,先讲类模板和函数模板的基础声明,再解析编译期实例化与参数包递归扩展逻辑,结合模拟list::emplace_back、通用参数转发案例,展现其高效构造对象、简化泛型代码的价值,提及空包声明、完美转发等注意事项,助快速掌握这一泛型编程利器。
2025-11-19 19:29:18
818
4
原创 C++11中的右值引用和移动语义
本文摘要:文章详细介绍了C++中的左值和右值概念:左值表示持久数据对象(如变量、解引用指针),可寻址并出现在赋值号两侧;右值表示临时数据(如常量、表达式结果),仅出现在赋值号右侧且不可寻址。通过代码示例展示了左值引用和右值引用的用法及区别,并说明右值引用和const左值引用可延长临时对象生命周期。文章还探讨了参数匹配规则,以及移动构造和移动赋值的实现原理——通过"窃取"右值资源避免深拷贝,提升效率。最后通过自定义字符串类的实现,对比了深拷贝与移动语义的性能差异。
2025-11-18 21:21:12
839
4
原创 C++11中的{}与std::initializer_list
C++11引入了{}统一初始化语法,支持所有类型使用{}初始化,包括内置类型和自定义类型。相比C++98仅支持数组和结构体初始化,C++11的{}初始化更简洁,可省略=号,在多参数构造时尤为方便。标准库新增std::initializer_list容器,底层存储数组指针,支持迭代器遍历。STL容器都支持initializer_list构造函数,使容器初始化更加灵活,如vector<int> v = {1,2,3}。该特性简化了对象容器的初始化过程,提升了代码简洁性和可读性。
2025-11-17 22:14:12
485
4
原创 C++类和对象--构造函数和析构函数详解
C++中的构造函数与析构函数是类的重要成员函数,分别负责对象的初始化和资源释放。构造函数在对象创建时自动调用,具有与类同名、无返回值、可重载等特点,编译器会默认生成无参构造函数。析构函数在对象销毁时自动调用,用于资源清理,类名前加~,无参无返回值。当类中有动态资源申请时,必须显式定义析构函数以避免内存泄漏。编译器生成的默认析构函数会处理自定义类型成员的析构。多个局部对象按定义顺序逆序析构。
2025-09-10 08:52:02
410
3
原创 【数据结构】二叉树的链式结构--用C语言实现
本文介绍了二叉树的链式存储结构及其实现。相比顺序存储,链式结构通过左右指针连接节点,更灵活地表示非线性关系。主要内容包括:1)链式节点的定义,使用左右指针指向子节点;2)三种遍历方式(前序、中序、后序)的实现原理及示例;3)二叉树基本操作的递归实现,包括创建节点、销毁树、计算节点数、查找节点等。通过递归思想,可以简洁地实现二叉树的各种操作,如计算叶子节点数、特定层节点数等。链式结构为二叉树提供了高效的存储和操作方式。
2025-07-23 14:46:21
1098
3
原创 【数据结构】揭秘二叉树与堆--用C语言实现堆(二叉树的顺序结构)
摘要:本文系统介绍了树和二叉树的数据结构概念及实现。首先阐述了树的定义、层次结构和相关术语(如度、深度、祖先等),重点讲解了二叉树的特性和两种特殊类型(满二叉树和完全二叉树)。随后详细说明了堆的实现,包括大/小根堆的定义、向上/向下调整算法以及堆的插入、删除等操作。文章通过代码示例展示了堆的初始化、销毁、判空等基本功能实现,为理解树形结构和优先级队列提供了全面的技术参考。
2025-07-20 11:18:46
1038
原创 【数据结构】队列的深入解析--用C语言实现
本文介绍了队列的基本概念、实现方式及具体代码实现。队列是一种遵循先进先出原则的线性表,可以使用数组或链表实现。通过分析时间复杂度(链表实现入队O(1)、出队O(1)),得出链表实现更优的结论。文章详细展示了队列的结构定义、初始化、入队/出队操作、获取队头/队尾数据、计算队列大小及销毁队列等核心功能的C语言实现代码。最后提供了完整的Queue.h头文件和Queue.c源文件代码,包含所有队列操作的基本函数实现。
2025-07-18 12:07:56
736
2
原创 【数据结构】栈的深入解析--用C语言实现
本文介绍了栈的基本概念、实现原理及C语言代码实现。栈是一种遵循先进后出原则的线性表,只能在固定端(栈顶)进行插入和删除操作。文章通过比较数组和链表作为底层结构的优缺点,选择了数组实现栈,因其入栈出栈的时间复杂度均为O(1)。详细讲解了栈的结构定义、初始化、销毁、入栈、出栈、取栈顶元素和获取有效元素个数等核心功能的实现方法,并提供了完整的C语言代码示例,包括头文件、实现文件和测试文件。
2025-07-18 10:15:32
534
原创 【数据结构】双链表--从原理到(用C语言)实现全解析
本文介绍了双链表(带头双向循环链表)的基本概念和实现方法。双链表与单链表的区别在于:双链表每个节点包含prev和next指针,形成双向循环结构,头节点不存储有效数据。文章详细讲解了双链表的各种操作实现,包括初始化、销毁、判空、插入(头插/尾插/指定位置)、删除(头删/尾删/指定位置)和查找等。通过代码示例展示了双链表如何利用prev指针提高操作效率,如尾插/尾删操作时间复杂度从单链表的O(n)降至O(1)。文中还提供了完整的C语言实现代码,包含链表节点定义和所有操作的函数实现。
2025-07-16 11:33:12
871
原创 【数据结构】单链表详解-- C语言实现增删查改
摘要 本文介绍了链表的基本概念和C语言实现单链表的方法。链表是一种非连续存储的线性结构,由节点组成,每个节点包含数据和指向下一节点的指针。与顺序表相比,链表在插入/删除操作上效率更高。文章详细讲解了单链表的创建、打印以及增删操作的具体实现,包括头插尾插、指定位置插入、头删尾删等核心功能,并强调了对指针操作和内存管理的注意事项。所有操作均通过二级指针实现链表头节点的修改,确保操作的正确性。
2025-07-11 16:55:05
765
原创 整数与浮点数在内存中的存储(含大端存储模式和小端存储模式的讲解)
详细介绍了整数和浮点数在内存中存储的细节,讲解了小端存储规则和大端存储规则的相关知识
2025-05-20 15:48:51
855
1
空空如也
vscode运行cpp文件不弹出终端窗口
2025-03-02
怎么写啊 谁能浇浇我😭
2024-09-25
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅