自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 Linux入门:软件包管理、Vim、GCC、Makefile、Git 与 GDB

本文系统梳理了 Linux 环境下进行 C/C++ 开发所需的核心基础工具与工作流。从软件包与依赖管理入手,解释 Linux 软件生态与安装源的设计思想;随后介绍 Vim 编辑器的模式机制;深入解析 GCC/G++ 编译流程、静态与动态链接原理;通过 Makefile 展示自动化构建与依赖管理的本质;结合进度条小项目讲解终端输出与缓冲机制;最后补充 Git 版本控制与 GDB 调试器的基本使用方法。全文以“工具为什么这样设计”为主线,辅以可运行示例,帮助读者建立完整、可迁移的 Linux 开发认知框架。

2025-12-19 22:11:56 1060

原创 本地刷题系统使用文档

本地刷题系统是一款基于本地运行的刷题工具,采用题库导入与离线存储方式,实现随机出题、错题收集、收藏管理与数据统计等核心功能。软件解压后即可运行,无需安装与网络依赖,适合用于考试备考、知识复习及题目训练等场景。

2025-12-19 21:07:54 940

原创 Linux文件上传git

在 Linux 云服务器开发过程中,将本地代码同步至代码托管平台是必不可少的操作。本文将以CentOS 7系统为例,从环境配置开始,详细介绍将本地文件上传至 Gitee/GitHub 的完整流程,并提供两种通用的上传方案。

2025-12-17 00:58:24 566

原创 【C++】继承与多态:从语法到底层原理

C++ 的多态究竟是如何实现的?为什么基类析构函数必须是虚函数?本文拒绝浅尝辄止,带你深入内存视角,剖析继承体系下的对象模型。从 virtual 关键字的底层机制,到菱形继承的内存布局,再到虚表指针的动态绑定,一文扫清 C++ 面向对象编程的所有盲区。适合想进阶底层的开发者阅读。

2025-12-14 23:49:10 862

原创 【C++】一篇吃透容器适配器三件套:从stack/queue/priority_queue到deque底层

本篇以“刷题 + 手撕”为主线,系统讲清 stack、queue、priority_queue 三件套。前半部分重点放在实际应用:如何用两个栈实现最小栈,如何判断栈弹出序列是否合法,逆波兰表达式怎么用栈求值,队列接口如何配合 while 循环安全使用,优先级队列怎样快速求数组第 K 大。后半部分再拉开底层视角:用 vector 封装一个简单 stack,用 list 封装一个简单 queue,解释优先级队列到底是怎样在顺序容器上套了一个堆模型,顺便把容器适配器和 deque 的设计思路串起来。

2025-12-10 21:23:37 970

原创 【C++】一次搞懂list:从STL用法到手撕双向链表实现

这篇文章专门把 C++ 中的 std::list 拆开讲清楚:先从“它到底是什么样的一条带头节点的双向循环链表”说起,配合图示理解节点如何首尾相连、为什么没有 capacity 概念,以及迭代器为什么是双向而不是随机访问。接着按“构造 → 迭代器 → 容量接口 → 访问接口 → 增删改 → 迭代器失效”这一条线,把常用接口和坑点过一遍。后半部分则完整手撕一个带头节点的 list,顺带设计迭代器和反向迭代器,最后再和 vector 做对比,总结各自适用场景。

2025-12-10 20:42:37 782

原创 【C++】vector类详细总结:从入门到手撕底层实现

这篇文章带你把 vector 从“会用”到“玩透”。前半部分系统梳理 vector 的常见构造方式、迭代器用法、size 与 capacity 的区别、扩容策略、增删查改接口以及迭代器失效等高频细节,再通过异或找单数、杨辉三角等 OJ 题把这些接口串起来使用。后半部分则手把手实现一个简易版 vector,围绕三根指针展开,讲清楚 reserve/resize 的本质、memcpy 深浅拷贝坑点,以及如何用 vector 搭建动态二维数组,让你真正理解 STL 背后的设计思路

2025-12-09 23:52:16 483

原创 C++ 字符串:始于 char*,终于深拷贝

写 C/C++ 时,一遇到字符串就开始心虚?这篇文章带你从“怕字符串”进化到“拿字符串当工具人”。先对比 C 风格字符串和 std::string,再系统讲清 string 的常用接口、auto、范围 for 的实战用法。中途顺带扒一扒 VS 和 g++ 中 string 的内部实现,字符串优化、写时拷贝是怎么回事。然后用几道典型 OJ 题练手:反转、回文、找字符、字符串相加。最后亲手实现一个 String 类,从浅拷贝翻车到深拷贝思想全串起来,让你真正吃透字符串这一块。

2025-12-09 01:05:02 828

原创 C/C++ 内存管理:摆脱野指针和内存泄漏

只会背“在堆上用 new,在栈上自动回收”还远远不够。这篇用图示和代码对比 malloc 系列与 new/delete 的行为差异,解释 operator new/operator delete 的真实作用,再补上 placement new 的实战场景,让你真正理解 C++ 内存管理,而不是嘴上会说两句。

2025-12-07 18:51:51 686

原创 C++入门基础:类与对象一篇通关

一遇到 C++ 类和对象就懵?构造、析构、拷贝构造、operator=、static、友元、lambda 一堆名词绕来绕去?这篇文章带你从最熟悉的 C 结构体出发,先搞清“对象在内存里到底长啥样”,再用 Date、Stack 等例子讲透构造 / 析构 / 拷贝 / 赋值的区别和浅拷贝坑点。后面再把运算符重载、const 成员、static 计数、友元、内部类、lambda、返回值优化串起来。看完你不只会抄类,而是能自己设计、看懂、改动类。

2025-12-07 17:52:38 1081

原创 算法复杂度到底是什么?用最简单的方式带你看懂时间与空间效率

刚开始学算法时,最容易卡住的概念就是“时间复杂度”和“空间复杂度”。很多人听过 O(N)、O(N²)、O(logN) 却不知道它们到底代表什么,也不知道写代码时什么时候需要考虑复杂度。这篇文章会用最通俗、最生活化的方式,带你从零理解算法复杂度是什么、怎么计算、什么时候该优化。文中准备了大量简单例子,比如循环、嵌套循环、递归、二分查找和排序,让你一眼就能明白每种复杂度是怎么来的。最后还通过一道经典题“旋转数组”,对比三种不同写法,让你第一次直观感受到“复杂度优化前后的差距”。看完这一篇,你基本就跨过算法学习的

2025-11-18 23:08:41 760

原创 C 语言必做入门项目:贪吃蛇!计算机练习实战必备(附源码)一步步带你从零做出一个小游戏!

还在为“学了那么多 C 语言语法,却不知道能做什么”而苦恼?这篇文章会彻底改变你。这里没有枯燥的概念堆砌,而是带你从零写出一款真正能玩的贪吃蛇游戏:界面刷新、键盘实时检测、蛇身移动、吃食物变长、撞墙死亡……每一个你在游戏里熟悉的机制,都会用最通俗的方式讲清楚它到底是怎么“跑起来的”。你会第一次发现:原来 Win32 控制台能这样用,链表在项目里能这么灵活,一个看似复杂的小游戏,其实你也能亲手敲出来。本教程配套图示 + 逐步拆解 + 完整代码,即使零项目经验也能无压力跟上。敲完这一篇,你会真正体会到——C 语

2025-11-17 23:44:07 1002

原创 单链表从入门到实战:结构+6道经典算法题+通讯录项目一套打完

如果你总是觉得链表有点“看懂了,写不明白”,那你特别适合这篇文章。这里我会用最容易理解的方式告诉你链表到底是什么、节点是怎么连起来的、每个操作为什么要那样写。然后带你刷几道经典链表题(反转、删除、找中点、约瑟夫),最后再带你用链表写一个通讯录项目。看完这一篇,你会发现链表其实一点都不神秘。

2025-11-17 21:51:56 679

原创 【数据结构】顺序表:从入门到实战的完整实现与案例

本文从工程视角深入讲解顺序表的设计与实现。首先构建一个具备动态扩容能力的通用顺序表,包括初始化、插入、删除、扩容、查找等功能模块,并通过实际代码展示内部逻辑如何运行。随后将顺序表作为底层容器,升级为可保存结构体信息的通讯录系统,实现数据录入、展示、查找、修改、删除及文件读写等核心能力。所有代码均以头文件与源文件的形式完整呈现,结构清晰,可直接编译运行。文章注重可理解性和可实践性,既适合作为数据结构的入门提升,也适合想掌握 C 项目工程化写法的读者参考。

2025-11-16 23:37:11 1268 1

原创 C 预处理深度精讲:宏、条件编译与头文件

文章围绕 C 语言预处理的核心能力展开:先讲解预定义符号与 #define 常量/宏的正确写法,再通过“形参加括号、整体再括、避免副作用多评估”等规则解决优先级与多次求值问题;随后介绍 # 字符串化、## 记号拼接的常用模板技法;在工程实践部分,系统演示条件编译的调试/发布开关、平台差异分支,以及头文件包含策略与 Include Guard / #pragma once 的对比;最后给出命令行 -D 配置与常见错误清单。全篇以通俗讲解+最小可运行示例呈现,兼顾实战与规范。

2025-11-16 00:35:45 687

原创 [C语言]动态内存攻略:calloc/realloc 安全扩容、典型错误逐一击破

本文系统梳理 C 语言动态内存管理:先解释为何需要堆内存,再逐一讲解 malloc/free 的用法与注意点;随后介绍 calloc 的“零初始化”与 realloc 的安全扩容写法(临时指针承接防丢失)。针对越界访问、对 NULL 解引用、重复释放、释放中间地址、返回局部地址等高频坑位,给出最小示例与修正思路。文末引入柔性数组的“一次性分配”技巧,对比指针成员的两次分配/释放,帮助写出更紧凑、可维护的代码,并附上内存区域总览,建立定位问题的整体地图。

2025-11-15 21:47:53 740

原创 [C语言]结构体:声明、初始化、自引用、内存对齐与位段,一文吃透

本文系统梳理C语言结构体的核心知识与实战细节:首先讲清结构体的概念、声明方式与初始化技巧,并解释匿名结构体的适用场景与限制;随后通过自引用示例搭建最小链表,说明为何必须用指针指向自身类型。重点部分围绕“结构体内存对齐”给出四条规则、直观内存图和#pragma pack的取舍分析。函数传参与性能方面,比较传值与传指针的成本与语义。最后深入位段(Bit-field)的布局原理、不可移植原因及更稳妥的显式打包方案。全篇配代码与图解,兼顾面试与工程实践。

2025-11-15 21:33:18 631

原创 [C语言进阶]字符串与字符函数全解:从 ctype.h 到 string.h,一次搞懂 strlen、strcpy、memcpy 的所有坑!

本文深入讲解了 C 语言中字符串与字符处理相关的标准库函数,包括字符分类与转换函数(isalpha、isdigit、toupper 等)、字符串长度与内存大小的区别(strlen vs sizeof)、字符串拷贝与拼接(strcpy、strcat)、比较、查找、分割(strtok)、以及内存操作函数(memcpy、memmove、memset 等)。文章以示例和内存图形化方式呈现,结合安全编程建议,帮助读者彻底理解 C 语言字符串的底层原理与最佳实践。

2025-11-13 19:44:56 536

原创 史上最容易看懂的 C 指针长文:2 万字内存图解+案例+避坑,一篇就彻底搞懂

指针几乎是所有 C 语言学习者的“分水岭”。会指针,你能驾驭内存、写出高质量代码;不会指针,写程序永远像踩地雷。本篇不讲枯燥定义,而是带你像调试器一样“看见”内存:地址是什么?类型为什么能决定指针的行为?数组名为什么“既像指针又不是指针”?二级指针到底在内存里长什么样?函数指针为何能让代码瞬间变成“插件式架构”?每个问题都有可视化内存图+真实踩坑案例+可运行示例,带你从彻底困惑到彻底开窍。读完你会第一次真正理解:指针不是难,而是没人带你从底层思考。学会它,你会发现 C 语言的世界突然豁然开朗。

2025-11-08 19:17:30 849 5

原创 C语言操作符全解析:从二进制到表达式

操作符是C语言的灵魂。本文从最基础的算术运算,到底层的位运算、补码原理、移位规则,再到复杂表达式求值与优先级陷阱,完整剖析每一类操作符的底层逻辑与实际用法。所有示例代码均可直接运行,适合系统学习与面试巩固。

2025-11-08 15:58:07 832 1

原创 C语言函数完全指南:从基础概念到高级应用

这篇博客深入浅出地讲解了C语言函数的核心知识。从函数的基本概念讲起,帮助读者理解如何通过库函数和自定义函数实现模块化编程。文章重点解析了形参与实参、数组传参的底层逻辑,并通过实例展示了嵌套调用与链式访问两种实用技巧。同时,详细说明了如何使用函数声明、定义,以及static和extern关键字来有效管理变量和函数的作用域。适合初学者夯实基础,也能帮助有一定经验的开发者深化理解。

2025-10-30 15:03:23 736 1

原创 C语言数组全解析:从入门到精通

本文系统介绍了C语言中数组的概念和使用方法。主要内容包括:一维数组的创建、初始化、访问和内存存储方式;二维数组的定义、初始化、输入输出及内存布局;使用sizeof计算数组元素个数;C99标准中的变长数组特性;以及两个典型数组应用案例(字符动画效果和二分查找)。文章详细讲解了数组的语法特性、内存存储原理和实际应用技巧,适合C语言初学者系统学习数组相关知识。

2025-10-27 16:07:34 1186 1

原创 C语言数组基础:简易扫雷游戏

本文介绍了一个基于C语言实现的9×9扫雷游戏开发过程。文章从游戏功能分析入手,详细阐述了采用双数组(mine和show)存储雷区和排查信息的数据结构设计,以及通过11×11数组解决边界问题的思路。在代码实现部分,具体说明了棋盘初始化、随机布雷、雷数计算和交互逻辑等关键功能的实现方法。通过字符'0'、'1'和'*'分别表示安全区、雷区和未探测区,实现了经典的扫雷游戏机制,最终完成了一个包含10个雷、具有完整游戏流程的控制台版扫雷游戏。

2025-08-18 14:10:36 1003 2

原创 C语言入门:从条件到循环全解析

本文系统介绍了C语言中的流程控制结构,包括选择结构和循环结构。选择结构部分详细讲解了if语句及其嵌套使用、关系操作符、条件操作符、逻辑操作符以及switch语句的实现原理和使用技巧。循环结构部分全面阐述了while、for、do-while三种循环的语法特点、执行流程和应用场景,并通过实例演示了它们的区别。文章还介绍了循环控制语句break和continue的作用,以及循环嵌套的典型应用。最后讨论了goto语句的利弊,指出其虽不推荐常规使用但在特定场景下的价值。

2025-08-15 15:02:15 1399 2

本地刷题系统(支持解析自定义题库)

本地刷题系统(支持解析自定义题库)

2025-12-19

空空如也

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

TA关注的人

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