自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【数据结构——双向链表】

本文详细介绍了双向带头循环链表的实现过程。首先定义了链表节点的结构体,包含数据域和前后指针。接着讲解了节点申请、初始化(创建哨兵卫节点)、尾插/头插操作及其图解说明,包括空链表和普通链表的处理。然后阐述了尾删/头删的实现逻辑及注意事项。此外还提供了查找节点、在指定位置插入/删除节点的方法,并分析了边界情况。最后说明了链表的销毁过程,需逐个释放有效节点并清除哨兵卫。全文通过代码示例和示意图结合,系统地讲解了双向循环链表的核心操作与实现细节。

2026-06-08 21:15:02 226

原创 【数据结构——单链表】

顺序表与链表的比较及单链表实现 本文主要分析了顺序表和链表的区别,并详细介绍了单链表的实现方法。顺序表物理连续,支持随机访问但插入删除效率低;链表逻辑连续物理分散,插入删除高效但不支持随机访问。单链表由节点组成,每个节点包含数据和指针。文章详细讲解了单链表的节点定义、内存申请以及基本操作(尾插、头插、尾删、头删)的实现思路和代码,重点讨论了指针操作和边界条件处理。通过对比和具体实现示例,展示了链表在动态内存管理方面的灵活性优势。

2026-06-06 22:50:40 252

原创 【数据结构——复杂度】

本文系统介绍了算法复杂度分析的要点,重点阐述了时间复杂度和空间复杂度的概念及计算方法。主要内容包括: 复杂度分类:时间复杂度衡量算法运行速度,空间复杂度衡量额外内存需求。现代计算机硬件发展使时间复杂度成为主要关注点。时间及空间复杂度分析及举例。

2026-05-13 12:38:00 428

原创 【数据结构——顺序表】

数据结构与顺序表实现摘要 本文介绍了数据结构的基本概念和顺序表的实现方法。主要内容包括: 数据结构基础:解释了数据逻辑结构(集合、线性、树、图)和存储结构(顺序、链式)的分类。 顺序表实现: 分为静态顺序表(固定大小数组)和动态顺序表(指针动态分配) 详细说明了顺序表的初始化、销毁操作 重点讲解了尾插法和头插法的实现逻辑,包括空间判断、增容处理等核心算法

2026-04-26 00:05:29 428

原创 【C语言基础——动态内存管理】

本文详细介绍了C语言动态内存管理的核心内容,主要包括: 内存分配机制:对比栈区自动分配和堆区手动分配的特点,强调动态内存的灵活性和大空间优势。 关键函数: malloc:申请未初始化内存 calloc:申请并初始化为0的内存 realloc:调整已分配内存大小 free:释放内存并避免内存泄漏 常见错误:包括空指针解引用、越界访问、错误释放等6类典型问题及解决方案。 柔性数组:C99特性,作为结构体最后一个成员的可变长数组,需配合malloc使用。 文章通过代码示例演示了各函数的正确用法和常见错误

2026-04-11 22:39:32 404

原创 【C语言基础——文件操作】

C语言文件操作是实现数据持久化的核心方法,通过流和文件指针统一管理输入输出。文件分为程序文件和数据文件两大类,按存储形式又可分为文本文件(ASCII码)和二进制文件(原生格式)。操作文件需遵循"打开-读写-关闭"流程,使用fopen/fclose函数管理文件生命周期。顺序读写提供多种函数:fgetc/fputc处理字符,fgets/fputs处理字符串,fscanf/fprintf处理格式化数据,fread/fwrite处理二进制数据。

2026-04-08 12:25:52 374

原创 【C语言基础——联合体与枚举】

本文介绍了C语言中联合体和枚举类型的特性与使用。联合体是一种共享内存的结构,所有成员共用同一块内存空间,大小由最大成员决定,并需考虑内存对齐。通过联合体可以方便地判断机器的大小端存储模式。枚举类型用于定义一组有限的常量集合,相比#define宏定义具有更好的可读性、类型安全性和调试便利性。枚举变量赋值必须使用枚举常量,不能直接使用整数值,这增强了代码的类型安全性。两种类型各具特色,联合体适合内存共享场景,枚举则适用于状态机、菜单选项等固定取值的场合。

2026-03-27 13:46:42 176

原创 【C语言基础——结构体】

本文介绍了C语言中结构体的基本概念和使用方法。主要内容包括:1.结构体的声明、创建和初始化方式,以及匿名结构体和自引用结构体的特殊用法;2.结构体内存对齐规则及其计算方式,解释了内存对齐的原因和优化方法;3.结构体传参的最佳实践,推荐使用地址传参;4.位段的概念和内存分配规则,说明位段可以节省空间但不具备可移植性。文章通过代码示例和内存布局图详细说明了结构体的各种特性,特别强调了内存对齐的底层原理和位段的使用注意事项。

2026-03-25 13:39:19 380

原创 【C语言基础——计算机数据存储】

本文介绍了数据在内存中的存储方式,重点分析了大小端字节序和浮点数的存储机制。大小端字节序决定了多字节数据的存储顺序,小端模式将低位字节存储在低地址,大端模式则相反。通过调试示例验证了VS编译器的存储方式。在浮点数存储方面,IEEE 754标准规定了浮点数的二进制表示形式,包括符号位、指数和有效数字三部分。文章还展示了整数和浮点数编码规则的不同,并详细说明了浮点数取出的三种情况。这些底层存储机制对理解程序运行和数据处理具有重要意义。

2026-03-15 13:41:50 389

原创 【C语言基础——字符串函数与内存操作函数】

本文介绍了C语言中常用的字符处理函数和字符串操作函数。字符函数部分包含字符分类函数和字符转换函数,使用时需包含ctype.h头文件。字符串函数部分分为长度不受限函数和长度受限函数,使用时需包含string.h头文件。文章详细说明了每个函数的功能、注意事项,并提供了部分函数的模拟实现代码,帮助理解底层逻辑。字符串函数使用时需特别注意目标空间大小、可修改性等关键性问题。

2026-03-13 14:09:10 384

原创 【C语言基础——指针5】

本文介绍了C语言中的qsort排序函数和sizeof/strlen的区别。qsort是快速排序库函数,可以排序任意类型数据,通过void*指针实现通用性。文章展示了qsort的用法示例和模拟实现方法。sizeof是计算内存大小的操作符,不关心具体数据;strlen是求字符串长度的库函数,统计到\0前的字符数。两者在功能和使用上有明显区别:sizeof关注内存占用,strlen查找字符串结尾标记。文中通过代码示例详细说明了这些特性的具体表现。

2026-02-21 21:37:51 266

原创 【C语言基础——指针4】

本文介绍了C语言中几种重要指针类型的使用方法。主要内容包括:1.字符指针变量的多种使用方式及常量字符串的特性;2.数组指针的定义、初始化和二维数组传参本质;3.函数指针的理解、创建和使用;4.typedef关键字的用法及其与#define的区别;5.函数指针数组的概念及其作为转移表的应用。通过代码示例和内存图解,详细讲解了这些指针类型的特点和实际应用场景,帮助读者深入理解指针在C语言中的灵活运用。

2026-02-20 14:05:07 624

原创 【C语言基础——指针3】

本文主要探讨了C语言中数组名与指针的关系及其应用。文章首先分析了数组名的两种理解方式:作为数组首元素地址和表示整个数组的特殊情况。其次详细介绍了指针访问数组的方法,包括多种遍历数组的写法。在数组传参部分,揭示了传参本质是传递首元素地址,并通过冒泡排序示例展示实际应用。最后讲解了二级指针的概念和指针数组的运用,包括如何用指针数组模拟二维数组。全文通过代码示例和图解,系统性地阐述了数组与指针的内在联系及编程技巧。

2026-02-17 00:24:25 568

原创 【C语言基础——指针2】

本文介绍了C语言中指针的常见问题和相关概念。首先分析了野指针的成因,包括未初始化指针、指针越界访问和指向已释放空间的情况,并提出了规避方法如初始化指针、检查指针有效性等。其次讲解了assert断言的使用方法及其优缺点,建议在Debug版本中使用。最后对比了指针的传值调用和传址调用,指出传址调用可以实现函数内修改主调函数变量的功能,而传值调用仅能使用变量值进行计算。这些内容对理解C语言指针操作和函数参数传递机制具有重要指导意义。

2026-02-17 00:23:22 785

原创 【C语言基础——指针1】

本文系统讲解了C语言中指针的核心概念与应用。首先阐述了内存编址原理,指出指针本质就是内存地址。然后详细介绍了指针变量的定义、取地址和解引用操作符的使用,分析了指针变量大小与机器位数的关系。文章重点剖析了指针类型的意义,包括解引用访问权限和指针运算步长差异。此外还探讨了void泛型指针和const修饰指针的两种用法区别。最后讲解了指针的算术运算、关系运算及指针减指针的应用场景。全文通过丰富代码示例和图示,帮助读者深入理解指针这一C语言重要特性。

2026-02-13 22:45:47 606

原创 【C语言基础——操作符】

本文介绍了C语言中各类操作符的分类与用法,重点讲解了移位操作符、位操作符和单目操作符。主要内容包括:操作符的分类,如算术、移位、位、赋值等操作符;进制转换方法,包括二进制、八进制、十六进制与十进制间的转换;机器数的表示形式(原码、反码、补码)及其转换;移位操作符(左移、右移)的具体规则和效果;位操作符(与、或、异或、取反)的原理及应用实例;单目操作符和逗号表达式的特点。通过代码示例详细说明了这些操作符的实际应用,帮助读者深入理解计算机底层运算机制。

2026-01-13 21:57:07 626

原创 【C语言基础——函数递归】

本文系统介绍了递归的概念与应用。首先阐述了递归的定义和大事化小的思考方式,通过阶乘计算示例展示了递归的实现过程。然后深入分析了递归的运行机制,包括函数栈帧调用和栈溢出风险,并以斐波那契数列为例揭示了递归存在的重复计算和效率问题。最后通过对比迭代方法,指出递归虽然代码简洁但效率较低,建议根据具体问题选择合适方法。全文通过实例代码和流程图,清晰呈现了递归的优缺点及适用场景,为编程方法选择提供了实用指导。

2025-12-20 14:13:34 813

原创 【C语言基础——扫雷小游戏】

本文介绍了扫雷游戏的C语言实现方案,采用多文件结构编写代码。主要内容包括:1) 菜单界面设计,通过switch语句实现游戏开始/退出功能;2) 游戏界面实现,使用二维数组构建棋盘,初始化并打印棋盘;3) 随机布置雷区功能;4) 查找雷的功能实现,包括坐标合法性检查、雷区判断及周围雷数统计。文章提供了完整的代码实现,展示了扫雷游戏的基本逻辑框架,包括初始化、界面显示、游戏交互等核心功能模块。

2025-11-27 19:03:32 767

原创 【C语言基础——函数】

本文系统介绍了C语言中函数的相关概念和应用。主要包括:1.函数分为库函数和自定义函数;2.自定义函数的定义、形参与实参的关系,以及数组作为函数参数的注意事项;3.函数的嵌套调用和链式访问两种使用方式;4.函数声明与定义的单文件和跨文件实现方法;5.变量的作用域和生命周期概念,以及static关键字的三种用法;6.return语句的使用注意事项。文章通过代码实例详细说明了各个知识点的应用方法,是C语言函数编程的实用指南。

2025-11-11 14:54:58 1155

原创 【C语言基础——数组】

本文介绍了数组的基本概念和应用。主要内容包括:一维数组的定义、初始化和存储方式;二维数组的定义和初始化方法;变长数组的灵活使用;以及顺序查找和二分查找两种算法。文章通过示例代码详细展示了数组的操作方法,包括输入输出遍历、内存存储特征等,并对比分析了两种查找算法的优缺点。重点强调了数组在内存中的连续存储特性以及变长数组不能初始化的限制。

2025-11-08 21:19:25 810

原创 【C语言基础——语句】

C语言语句可分为五类:空语句、表达式语句、函数调用语句、复合语句和控制语句。文章通过实例详细说明了各语句的语法格式和使用场景。

2025-10-18 10:37:33 1313

原创 【C语言基础知识】

这篇C语言入门教程涵盖了以下核心内容: 第一个C程序结构(预处理、主函数、printf函数) 基本数据类型(整型、实型、字符型)及其格式控制符 常量与变量的定义和使用 键盘输入函数scanf的使用注意事项 各类运算符的优先级和使用方法(算术、自增、三元等) 代码注释的作用和格式 文章通过示例代码和表格对比的方式,清晰讲解了C语言的基础语法要点,特别强调了数据类型转换、运算符优先级、输入输出格式等初学者常见问题,并提供了实用的VS快捷键提示。

2025-10-12 10:21:12 1199

空空如也

空空如也

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

TA关注的人

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