- 博客(26)
- 收藏
- 关注
原创 【C++类与对象·上】从结构体到类:C++封装思想入门
本文介绍了C++中类的封装特性,从C语言结构体到C++类的演进过程。重点讲解了类的访问控制(public/private)、成员函数、this指针机制和构造函数等核心概念,并通过银行账户和汽车类等实例演示了封装的实际应用。文章对比了C与C++实现相同功能时的差异,凸显了C++封装在代码安全性和可维护性方面的优势。最后简要探讨了对象的内存布局,并预告了后续将讨论的深拷贝、析构函数等面向对象编程进阶主题。全文以建筑蓝图类比类与对象的关系,生动阐述了面向对象编程的基本思想。
2025-11-24 00:21:36
387
4
原创 从零开始学二叉树(下):链式二叉树与递归的终极修炼
一句话预告:递归不是魔法,而是“分而治之”的思维艺术;遍历不是背代码,而是模拟计算机的思考路径。
2025-11-16 00:34:47
6110
19
原创 从零开始学二叉树(中):堆与完全二叉树的奥秘
为什么完全二叉树能用数组存?堆排序为什么快?Top-K 问题为何反直觉地用小堆?这篇博客将会给你答案
2025-11-15 23:58:49
6056
21
原创 数据结构精讲:从栈的定义到链式实现,再到LeetCode实战
栈,这个看似简单的数据结构,却是计算机科学中最基础、最重要的概念之一,希望这篇博客能帮助你建立起对栈的系统化认知,并激发你进一步探索数据结构的兴趣。
2025-11-11 16:15:28
1070
13
原创 不止是链:静态链表与循环链表的内存魔法
目录引言:数据结构的“因地制宜”一、静态链表的核心思想:游标(Cursor)二、静态链表的初始化:构建“备用链表”三、静态链表的插入操作:巧借“备用链表”之力1. 分配空间 (Malloc_SSL)2. 插入元素 (ListInsert)四、静态链表的删除操作:回收空间,重归“备用链表”1. 回收空间 (Free_SSL)2. 删除元素 (ListDelete)五、其他基本操作与核心优缺点计算链表长度 (ListLength)静态链表的优缺点总结六、从静态链表到循环链表:解决“单行道”的烦恼常见错误:循环链
2025-11-06 01:02:07
926
14
原创 避坑修链表:从顺序表到单链表的那点事儿(含可跑示例与小项目串联)
1. 链表的概念及结构2. 实现单链表3. 链表的分类4.链表的应用 通讯录详解
2025-10-16 12:23:45
1286
12
原创 学完顺序表后,用 C 语言写了一个通讯录
本文介绍如何用顺序表实现通讯录管理系统。顺序表是数组+长度+容量的封装,适合存储联系人数据。系统功能包括添加、删除、查找、修改和显示联系人,并支持文件持久化。实现步骤包括定义联系人结构体、顺序表结构、核心操作函数和业务逻辑。文章还分析了顺序表的优缺点,并建议后续可优化为链表或哈希表。通过这个项目,读者可以深入理解顺序表的实际应用。
2025-10-12 21:40:34
2508
17
原创 从零开始,用C语言实现经典贪吃蛇游戏(附完整代码)
看到这里,相信你已经掌握了用C语言实现贪吃蛇的完整过程。编程最重要的不是记住代码,而是理解思路和解决问题的方法。结构体与链表:管理复杂数据枚举类型:提高代码可读性动态内存管理:合理使用和释放内存系统API调用:与操作系统交互游戏循环设计:状态管理和逻辑控制学长寄语:当你看到自己写的代码变成一个可玩的游戏时,那种成就感会让你明白:所有的努力都是值得的!编程就像搭积木,开始时你可能只认识几块基础积木(语法),但随着经验积累,你会学会如何将它们组合成各种有趣的形状(项目)。
2025-10-04 01:20:34
1234
21
原创 数据结构入门:从C语言到顺序表,带你轻松入门
本文系统介绍了数据结构中的顺序表概念及应用。首先阐述了数据结构的重要性,指出它是解决数据组织问题的关键工具。重点讲解了动态顺序表这一基础数据结构,包括其结构定义、核心操作(初始化、销毁、扩容)以及基本功能实现(增删改查)。通过通讯录项目的实际案例,展示了顺序表的应用场景。文章对比了顺序表的优缺点,强调其适合频繁随机访问但插入删除不频繁的场景。最后提供了完整的动态顺序表代码实现,并鼓励读者通过实践掌握这一基础数据结构。全文采用生活化类比,帮助读者理解抽象概念,为后续学习更复杂的数据结构打下基础。
2025-10-03 00:19:54
1158
6
原创 从零开始写一个五子棋游戏!手把手教你用 C++ 实现控制台版五子棋(附原码)
本文介绍了一个基于C++实现的命令行五子棋游戏。游戏采用19x19棋盘,使用二维数组存储棋子状态,通过整数变量记录当前回合。核心功能包括:初始化棋盘、玩家落子、胜利判断(横向/纵向/斜向检查五连珠)、清屏与暂停等交互功能。游戏主循环实现双方轮流落子,并包含输入验证和错误处理。程序还设计了主菜单界面,支持开始游戏、设置和退出功能。该实现适合编程初学者学习基础语法、数组操作和函数设计,完整代码提供了详细的注释和跨平台支持。
2025-09-26 13:46:56
1526
7
原创 C++入门指南:从零开始,做一名优秀的程序员
最近这段时间也是开始接触C++了,同时也在接触数据结构,真的是比较忙啊,过俩天在更新《数据结构杂谈》的内容,今天先更新C++的。目前我学习C++的方式主要是看书,在B站大学里学习文章后半段内容会推荐一些C++的书籍,感兴趣的可以看一下。我特别想跟大家分享一下我的学习心得。今天,我将用最通俗易懂的语言,带你们走进C++的奇妙世界,让C++不再那么神秘莫测。无论你是编程小白,还是刚接触过一点编程,这篇博客都会让你对C++有一个全新的认识。缺省参数是指在函数声明或定义时,给参数指定一个默认值。
2025-09-24 18:18:07
1388
7
原创 C语言入门指南:联合体与枚举
本文介绍了C语言中两种重要的自定义数据类型:联合体(Union)和枚举(Enum)。联合体通过共享内存空间来节省内存,所有成员共用同一块内存,修改任一成员会影响其他成员的值,适用于需要极致优化内存的场合。枚举则为整型常量赋予有意义的名称,提高了代码的可读性和可维护性,特别适合表示固定选项的场景。文章通过生动的比喻和代码示例,详细讲解了二者的特点、使用方法和实际应用价值,帮助读者理解如何利用这些特性编写更高效、更清晰的代码。
2025-09-20 15:46:15
1784
2
原创 C语言入门指南:从0开始,手把手教你搞懂结构体
《结构体完全指南》是一篇面向C语言初学者的详细教程,从基础概念到高级应用全面解析结构体。文章将结构体比喻为"数据收纳盒",讲解其声明、初始化、成员访问等基础操作,并深入探讨内存对齐、结构体传参等进阶内容。重点包括:结构体的必要性(管理相关数据)、声明与初始化方法、点操作符访问成员、匿名结构体与自引用(链表基础)、内存对齐原理(四大黄金法则)、高效传参技巧(指针优于值传递),以及位段的内存压缩技术。教程强调实践,通过大量代码示例和比喻帮助理解,同时指出位段的跨平台风险,适合希望系统掌握结构
2025-09-19 22:00:00
1143
原创 C语言入门指南:内存操作函数详解
一句话建议:如果你不确定内存是否会重叠,无脑使用memmove!它在功能上完全兼容memcpy,只是在有重叠时多做了一点判断,安全性满分。希望这篇博客能帮你彻底掌握这四个强大的内存函数!它们是C语言底层操作的基石,理解它们,你的编程功力会更上一层楼!
2025-09-19 12:52:34
932
原创 C语言入门指南:字符函数和字符串函数
errno的值只是一个数字(如2),返回,这使得程序的错误信息变得人性化,极大地提升了调试效率。引言:在C语言编程中,字符(char)和字符串(string)是最核心的数据类型之一。无论是读取用户输入、解析配置文件、处理网络数据包,还是进行简单的文本格式化,我们几乎无时无刻不在与它们打交道。C语言标准库为我们提供了一套精巧而强大的函数集合,主要位于<ctype.h><string.h>和<errno.h>等头文件中。这些函数是高效、可靠地操作字符串的基石。
2025-09-13 23:48:58
1819
1
原创 C语言入门指南:指针
指针不可怕,可怕的是不敢碰它。只要你愿意动手画图、写代码、调试错误,指针终将成为你编程路上最锋利的武器!下期预告:字符函数和字符串函数。
2025-09-12 08:15:00
1220
原创 C语言入门指南:函数与函数递归
本文介绍了C语言中函数和递归的核心概念。函数作为代码复用的基本单元,其结构包含返回值类型、函数名、参数列表和函数体,通过形参和实参传递数据。数组作为函数参数时实际传递的是指针,需注意其特性。递归则是函数调用自身的编程技巧,必须具备递归基和递归关系两大要素,通过阶乘和斐波那契数列示例展示了递归的实现方式。文章还分析了递归的优缺点,并与循环进行了比较,指出应根据问题特点选择合适的方法。最后强调多实践以掌握这些基础而重要的编程概念。
2025-09-10 21:59:29
1203
原创 C语言入门指南:操作符(二)
本文介绍了C语言中常见操作符的使用方法及注意事项。主要内容包括:1.赋值操作符(=、+=、-=等)的用法及示例代码;2.特殊操作符如三元条件操作符、sizeof和逗号操作符的使用场景;3.操作符优先级和结合性的重要规则;4.常见的编程陷阱,如自增/自减操作符的前后缀区别、除零错误和整数溢出问题。文章通过具体代码示例说明了各类操作符的正确使用方法,并强调了在复杂表达式中使用括号明确计算顺序的重要性,帮助开发者避免常见错误,提高代码质量。
2025-09-01 16:35:30
1125
1
原创 C语言入门指南:操作符(一)
摘要:本文介绍了计算机操作符中与二进制相关的知识。首先讲解了不同进制(2/8/10/16进制)的表示方法及转换规则,重点阐述了二进制与十进制之间的转换原理。接着说明整数的三种二进制表示方法:原码、反码和补码,并解释计算机使用补码存储的原因。最后详细介绍移位操作符(<<和>>)和位操作符(&、|、^、~)的使用方法,并通过实例演示了如何利用位操作实现变量交换。
2025-08-23 23:55:16
1685
原创 VS实用调试技巧
这篇文章介绍了程序调试的相关知识。首先解释了"bug"一词的起源,源自1947年格蕾丝·赫柏在计算机中发现飞蛾导致故障的事件。然后详细讲解了debug的概念、方法和重要性,强调调试时要承认错误并细致检查。文章还对比了Debug和Release两种编译模式的区别,介绍了VS中常用的调试快捷键(F9、F5、F10、F11等)和监视窗口的使用技巧。最后分类说明了常见的编程错误类型(编译型、链接型、运行时错误),并通过一个阶乘求和的实例演示了如何通过调试发现并修复问题。文章强调调试能力对程序员理
2025-08-20 19:43:44
10855
原创 C语言入门指南:数组(一)
本文介绍了C语言中一维数组的基本概念和使用方法。主要内容包括:数组的定义和特点(同质性、连续存储、固定长度);一维数组的创建、初始化和类型说明;数组元素的访问与操作(下标访问、遍历打印、输入);数组在内存中的连续存储特性(通过地址分析);以及使用sizeof计算数组元素个数的方法。文章通过具体示例代码,详细说明了数组的声明、初始化、访问等基本操作,并强调了数组在内存中的连续存储特性及其访问效率优势。
2025-08-16 18:27:51
1125
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅