自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 C++——类和对象(中)

本文介绍了C++类中的默认成员函数,包括构造函数、析构函数、拷贝构造函数、赋值运算符重载和取地址运算符重载。构造函数用于对象初始化,支持重载;析构函数用于资源清理;拷贝构造函数用于对象复制,需注意深拷贝与浅拷贝问题;赋值运算符重载实现对象间的赋值操作;取地址运算符重载分为普通和const版本。文章还详细说明了这些函数的语法规则、使用场景和注意事项,强调当类涉及资源管理时,通常需要手动实现这些函数以确保正确行为。通过代码示例展示了各函数的实际应用和常见错误情况。

2026-03-24 14:20:06 367 1

原创 C++——类和对象(上)

本文介绍了C++中类的核心概念:1. 类是对数据成员(属性)和函数(方法)的封装,相比C语言的结构体更强大;2. 访问限定符(public/private/protected)控制成员访问权限;3. 类通过class/struct定义,默认访问权限不同;4. 类实例化创建对象,对象大小遵循内存对齐原则;5. this指针是隐含指向当前对象的指针,编译器自动添加;6. 空指针调用方法时,只有访问成员数据才会引发崩溃。文章还详细说明了类域、方法定义、初始化等语法要点。

2026-03-20 20:36:15 217 2

原创 C++——基础概念

本文介绍了C++中的核心概念和特性。主要内容包括:1.命名空间的概念和使用方法,解决标识符冲突问题;2.C++的输入输出机制,包括iostream库和流操作符的使用;3.缺省参数的语法规则和使用场景;4.函数重载的实现条件和应用示例;5.引用的概念、语法规则及其与指针的区别;6.const引用的权限控制和临时变量处理;7.宏的定义和使用注意事项;8.内联函数的特性及其与宏的区别;9.nullptr关键字的引入背景和使用方法。

2026-03-18 22:49:31 546 16

原创 C语言数据结构——堆

本文系统介绍了树结构及其相关概念。首先阐述了树的基本术语:根节点、子节点、父节点、边、子树等,并详细说明了节点的度、叶节点、兄弟节点等概念。其次讲解了树的存储结构,包括链式结构、二叉链表和多叉链表,重点分析了孩子表示法和孩子兄弟表示法的实现方式。然后深入探讨了二叉树及其特殊类型(满二叉树、完全二叉树)的特性与存储方式。最后详细讲解了堆的概念与实现,包括大顶堆/小顶堆的定义、创建堆的两种算法(向上调整和向下调整)及其时间复杂度分析,并给出了堆排序和TopK问题的具体实现方案。

2026-03-10 21:03:30 413

原创 C语言数据结构——队列

本文介绍了队列的基本概念及其实现方法。队列是一种先进先出(FIFO)的数据结构,通过链表实现,包含初始化、入队、出队、获取队头队尾元素等操作。文章还讨论了三种OJ题解法:1)循环队列通过多开一个空间解决假溢出问题;2)用两个队列实现栈,通过数据转移实现后进先出;3)用两个栈实现队列,利用入栈和出栈的顺序转换实现先进先出。每种实现都提供了完整的代码示例,包括初始化、插入、删除、判空等核心操作。

2026-03-04 23:06:07 338 1

原创 C语言数据结构——栈

本文比较了顺序表和链表的存储特性:顺序表支持随机访问但插入删除效率低,链表插入删除高效但不支持随机访问。详细介绍了栈的后进先出特性及其实现方式,包括顺序表实现的栈结构定义、初始化、入栈、出栈等基本操作。通过"有效的括号"算法示例,展示了如何利用栈的特性解决实际问题,当遇到左括号入栈、右括号时与栈顶元素匹配验证。最后强调使用栈时需注意内存管理和边界条件检查。

2026-03-03 09:27:59 333

原创 C语言数据结构——链表OJ题

本文总结了五道经典链表算法题的解法:1.返回倒数第k个节点(双指针法);2.判断回文链表(找中点+反转后半部分);3.相交链表(计算长度差+同步遍历);4.环形链表检测与入环节点查找(快慢指针+数学推导);5.带随机指针链表的深拷贝(节点复制+拆分)。每道题都提供了清晰的解题思路和代码实现,重点讲解了双指针技巧在链表问题中的应用,包括快慢指针的多种使用场景,以及如何处理链表中的特殊结构如环和随机指针。这些解法体现了链表问题的核心解决思路和算法优化方法。

2026-03-02 12:31:26 777

原创 C语言数据结构——复杂度

本文系统介绍了数据结构与算法的基本概念和学习方法,重点分析了时间复杂度和空间复杂度的计算原理与应用。在时间复杂度部分,详细讲解了大O表示法、常见复杂度量级(如O(1)、O(n)、O(n²)、O(logn)等)以及计算规则,通过多个典型算法示例(循环嵌套、二分查找、递归等)演示了复杂度的具体计算方法。空间复杂度部分则阐述了其定义、表示方法和常见类型,并通过数组操作案例进行说明。最后通过两道OJ题目(消失的数字、轮转数组)展示了复杂度分析在实际算法问题中的应用。

2026-03-01 11:35:56 539

原创 C语言数据结构——链表(下)

本文介绍了双向链表的基本概念与实现方法。双向链表是带头双向循环链表,每个节点包含数据域和前后指针域。文章详细说明了双向链表的C语言实现,包括节点申请、初始化、打印、头插尾插、头删尾删、查找、插入删除节点以及销毁链表等操作。通过创建List.h头文件声明函数,List.c文件实现具体功能,test.c文件测试功能,展示了双向链表的完整实现过程。重点阐述了指针操作的逻辑,特别是插入删除节点时前后指针的调整方法,以及哨兵位(头节点)的处理方式。

2026-02-27 21:19:12 219

原创 C语言数据结构——链表(上)

本文系统介绍了链表数据结构及其实现方法。首先分析了顺序表的缺点,包括插入效率低和扩容问题。接着详细讲解了链表的基本概念,包括其逻辑连续但物理不连续的特性,以及按带头/不带头、单向/双向、循环/不循环的8种分类方式。重点实现了不带头单向不循环链表,包括创建、插入、删除、查找等基本操作。最后通过6道OJ题目(移除元素、反转链表、中间节点、合并有序链表、约瑟夫问题、分割链表)展示了链表的实际应用,提供了详细的解题思路和代码实现。全文采用C语言实现,突出了链表在动态内存管理和高效操作方面的优势。

2026-02-26 16:39:15 938

原创 C语言数据结构——顺序表

摘要:本文系统介绍了数据结构中的顺序表实现。首先区分了线性表的逻辑连续性和物理连续性特点,重点讲解了顺序表作为数组扩展的实现方式。详细阐述了静态和动态顺序表的结构差异,并通过C语言代码展示了动态顺序表的完整实现方案,包括初始化、增删查改等核心操作。最后通过两道练习题(移除元素和合并有序数组)演示了顺序表的实际应用,给出了双指针法的解题思路和代码实现。全文通过理论讲解与代码实践相结合的方式,全面讲解了顺序表这一基础数据结构。

2026-02-01 15:02:51 626

原创 第一次学c语言系列之——动态内存管理!!!

本文介绍了C语言中的动态内存管理机制,包括malloc、free、calloc和realloc等核心函数的用法及注意事项。文章详细说明了每个函数的功能、参数和返回值,并提供了代码示例。同时列举了动态内存管理中的常见错误,如空指针解引用、内存越界访问、多次释放等问题。最后讲解了柔性数组的概念、特点和使用方法,展示了如何通过动态内存分配来扩展结构体中的数组空间。全文涵盖了从基础使用到常见错误的完整知识体系,为程序员正确使用动态内存提供了实用指导。

2026-01-25 17:24:00 617 4

原创 第一次学c语言系列之——函数补充!!!

本文介绍了C语言中函数声明、static/extern关键字和函数栈帧的相关知识。函数声明分为单文件和多文件两种形式,多文件声明通过.h头文件实现逻辑分离。static关键字可延长局部变量生命周期或限制全局变量/函数作用域,extern用于声明外部符号。函数栈帧涉及内存划分(栈区、堆区、静态区等)和寄存器使用,其创建过程包括保存返回地址、分配局部变量空间,销毁时恢复现场并释放内存。这些机制共同构成了C语言函数调用的底层实现基础。

2026-01-25 13:30:55 403

原创 第一次学c语言系列之——自定义类型!!!

C语言中的自定义类型主要包括结构体、联合体和枚举。结构体用于封装不同类型的数据成员,支持内存对齐优化和位段操作;联合体所有成员共享内存空间,更节省内存但每次只能使用一个成员;枚举用于列举可能的值,增强代码可读性。结构体传参推荐使用指针以提高效率,联合体可用来判断大小端存储。枚举相比#define具有类型检查和调试优势。这三种类型各具特点,可根据不同需求灵活选用。

2026-01-23 15:35:45 727

原创 数据在内存中的存储

摘要:本文探讨了整数和浮点数在内存中的存储方式。整数以二进制补码形式存储,涉及大小端字节序概念(大端高位存低地址,小端相反)。通过代码示例展示了大小端判断、整型提升规则(有符号数补符号位,无符号数补0)以及类型转换时的数值变化。浮点数采用IEEE 754标准存储,由符号位S、尾数M和指数E组成,并以科学计数法形式表示。通过7.25等案例解析了浮点数的二进制转换和存储规则,最后用整型与浮点型互相读取的示例验证了存储差异。全文通过实践代码演示了内存存储机制对程序运行结果的影响。

2026-01-21 11:51:01 1041

原创 第一次学c语言系列之——内存函数!!!

本文介绍了四个内存操作函数的使用及实现:1. memcpy函数用于内存拷贝,但无法处理内存重叠情况;2. memmove函数解决了memcpy的内存重叠问题,根据源地址与目标地址的关系决定拷贝方向;3. memset函数用于设置内存值;4. memcmp函数用于内存比较。文中详细说明了各函数的原型、功能、使用方法,并提供了memcpy和memmove的自实现代码,其中memmove通过判断源地址与目标地址的相对位置来选择从前或从后拷贝,确保重叠内存的正确复制。

2026-01-17 18:24:21 56

原创 第一次学c语言系列之——字符函数与字符串函数!!!

本文系统介绍了C语言中常用的字符和字符串处理函数。字符函数主要分为两类:字符分类函数(如isspace、isdigit等用于判断字符类型)和字符转换函数(如tolower、toupper用于大小写转换)。字符串函数包括strlen、strcpy、strcat、strcmp等基本操作函数及其长度受限版本(如strncpy、strncat),还包含strstr(查找子串)、strtok(分割字符串)和strerror(错误信息)等特殊功能函数。

2026-01-17 13:09:09 928

原创 第一次学c语言系列之——指针下!!!

本文主要介绍了C语言中的回调函数、qsort函数、sizeof与strlen的区别,以及数组和指针的相关练习。回调函数通过函数指针实现,示例展示了一个计算器程序。qsort函数可以排序任意数据类型,文中演示了其使用方法和用冒泡排序模拟实现。sizeof计算数据类型/变量内存大小,而strlen计算字符串长度。最后通过多个示例详细分析了数组和指针在不同情况下的运算结果,包括一维数组、二维数组、字符数组和字符串指针的各种操作。这些内容涵盖了C语言中重要的指针和数组操作知识点。

2026-01-11 23:29:03 408 1

原创 第一次学c语言系列之——指针中!!!

本文摘要:文章系统讲解了C语言中指针与数组的核心概念及应用。主要内容包括:1)数组名的本质理解,区分sizeof(arr)和&arr的不同;2)指针访问数组的两种等价形式;3)一维数组传参本质是传递首元素地址;4)冒泡排序的实现;5)二级指针的定义与使用;6)指针数组和模拟二维数组的方法;7)字符指针变量的特性;8)数组指针变量与二维数组传参;9)函数指针的定义与使用;10)typedef关键字重定义类型;11)函数指针数组的应用。通过代码示例详细展示了各类指针的操作技巧和注意事项。

2025-12-21 11:19:51 212

原创 第一次学c语言系列之——指针上!!!

本文摘要:文章系统介绍了C语言中指针的核心概念与应用。主要内容包括:1.内存编址原理和指针变量的定义;2.指针类型及其对解引用和运算的影响;3.const限定符修饰指针的三种方式;4.指针运算规则(加减、比较等);5.野指针的成因及规避方法;6.assert断言的使用场景;7.函数传值和传址的区别,重点演示了通过指针实现变量交换的实例。全文以代码示例为主,详细讲解了指针的底层机制和实际应用技巧。

2025-12-15 18:00:59 366 1

原创 第一次学c语言系列之——操作符补充知识!!!

本文从二进制和补码角度深入解析了计算机操作符相关知识。主要内容包括:1) 进制转换方法,重点介绍二进制与其他进制间的转换;2) 原码、反码和补码的概念及转换规则,说明计算机以补码形式存储和计算;3) 移位操作符(<<和>>)的工作原理及正负数处理方式;4) 位操作符(&、|、^、~)的功能和使用实例;5) 结构体的定义、初始化及成员访问方法;6) 操作符优先级和结合性规则;7) 整型提升和算术转换的计算原理。通过具体代码示例详细展示了各类操作符的实际应用场景和运算机制。

2025-12-14 02:45:25 618 2

原创 第一次学c语言系列之——函数补充知识!!!

本文介绍了VS调试技巧和函数递归原理。在VS调试部分,对比了Debug和Release模式的区别,讲解了常用调试快捷键(F5、F10、F11等)和错误类型(编译错误、链接错误、运行时错误)。递归部分阐述了递推+回溯的执行过程,通过斐波那契数列和青蛙跳台阶两个实例,展示了递归的实现方式和执行逻辑。全文以实践为导向,帮助开发者掌握调试方法和递归思维。

2025-12-02 22:20:06 503 1

原创 第一次学c语言系列之——函数!!!

本文系统介绍了C语言中函数的相关知识。主要内容包括:1.函数的定义与分类,分为库函数和自定义函数;2.库函数的使用方法,包括头文件和标准库的作用;3.自定义函数的语法结构、形参与实参的区别、return语句的使用;4.数组作为函数参数的实现方法;5.函数的嵌套调用和链式访问;6.函数声明的两种方式(单文件和多文件)。文章通过具体代码示例详细讲解了每个知识点,为后续开发扫雷游戏等实际打下基础。

2025-11-24 22:58:44 1210 2

原创 第一次学c语言系列之——数组!!!

本文介绍了C语言中一维数组和二维数组的基本概念和使用方法。主要内容包括:数组的创建与初始化、数组类型说明、下标访问方式、元素打印与输入、sizeof操作符的应用以及数组在内存中的存储特点。特别说明了二维数组的行初始化方式和C99标准中的变长数组特性。最后通过一个字符串汇聚的实例演示了数组的实际应用,并介绍了代码优化的技巧。

2025-11-22 20:21:56 1154 1

原创 第一次学c语言系列之——控制语句!!!

本文介绍了C语言中的三种控制语句:顺序语句、分支语句和循环语句。顺序语句按代码顺序执行;分支语句通过if/switch实现条件判断,重点讲解了if语句的多种形式及注意事项;循环语句包括while/for/do-while,分析了其执行流程及break/continue的使用。文章还涉及关系操作符、条件操作符等语法要点,并指出常见错误如else就近选择原则。最后简要提及跳转语句goto的用法。

2025-11-19 14:13:18 694 4

原创 第一次学c语言系列之——数据类型与变量!!!

本文主要介绍了C语言的基础知识,包括数据类型、变量、运算符及输入输出函数。详细讲解了内置数据类型如布尔型、字符型、整型和浮点型的特性及用法,解释了变量的定义规则和赋值操作。特别说明了printf和scanf这两个常用输入输出函数的格式控制、占位符使用及注意事项。文章以初学者视角出发,通过代码示例演示了各种概念的实际应用,为后续学习分支和循环结构打下基础。

2025-11-10 21:18:14 1312 3

原创 第一次学c语言系列之——小白入门篇!!!

本文为C语言初学者提供入门指南,涵盖基础知识与开发环境搭建。首先介绍C语言作为人机交互语言的历史背景和重要性。详细讲解VS2022社区版的安装步骤和第一个"Hello World"程序的完整创建过程,重点解析main函数框架和语法要点。概述C语言基础知识:1)32个保留关键字;2)ASCII编码与字符/字符串;3)常用转义字符;4)语句分类;5)注释方法。文章采用循序渐进的方式,帮助新手从零开始理解C语言编程基础,为后续学习数据类型和变量等内容奠定基础。

2025-11-04 14:22:55 722 3

空空如也

空空如也

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

TA关注的人

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