- 博客(30)
- 收藏
- 关注
原创 C++函数重载与引用详解,以及内联函数
函数重载(Function Overloading)是 C++ 的重要特性,指在同一作用域内,允许存在多个同名函数,但要求这些函数的参数列表必须不同。(参数个数、参数类型、参数顺序至少有一项不同)非常重要!!。编译器会根据调用时传入的实参,自动匹配到对应的函数,实现 “一个函数名,多种功能” 的效果。实际项目中,函数重载常涉及多文件拆分,需注意 “声明与定义的一致性”。#define FUNC_H // 防止头文件重复包含// 声明3个重载函数#endif。
2025-08-23 00:07:08
506
原创 单链表实现通讯录:超详细教程
首先,我们需要定义联系人信息的结构体和单链表节点的结构体。int age;}PeoInfo;// 存储联系人信息} SLTNode;这里,PeoInfo结构体用于存储联系人的具体信息,SLTNode结构体表示单链表的节点,每个节点包含一个PeoInfo类型的数据和一个指向下一个节点的指针。通过这个项目,我们学习了如何使用单链表来实现一个简单的通讯录。数据结构:单链表是一种动态数据结构,由节点组成,每个节点包含数据和指向下一个节点的指针。内存管理:使用malloc动态分配内存,使用free。
2025-05-24 22:21:51
559
原创 探索链表的奇妙世界:从基础到高级应用
链表作为一种基础的数据结构,在计算机科学中有着广泛的应用。通过本文的介绍,我们了解了链表的四种主要类型:单链表:最简单的链表形式,支持单向遍历双向链表:增加了前驱指针,支持双向遍历循环链表:首尾相连,适合环形结构的应用双向循环链表:结合了双向链表和循环链表的特点,提供最大的灵活性每种链表结构都有其独特的形态、特点和适用场景。在实际编程中,我们可以根据具体需求选择合适的链表类型。链表的核心优势在于动态内存分配和高效的插入删除操作,这使得它在许多场景下比数组更加适用。
2025-05-24 14:57:33
666
原创 小白刷题之链表中的 “龟兔赛跑“:快慢指针算法详解
检测链表中是否有环:如果链表中有环,快指针最终会追上慢指针。寻找链表倒数第 k 个节点:让快指针先走 k 步,然后快慢指针同时移动,当快指针到达末尾时,慢指针就指向倒数第 k 个节点。链表的反转与合并:在处理链表的反转或合并问题时,快慢指针可以帮助我们找到合适的分割点。判断链表是否为回文:先找到链表的中间节点,然后反转后半部分链表,最后比较前半部分和后半部分是否相同。快慢指针算法的核心思想就是利用不同速度的指针在链表上移动,从而实现对链表的高效遍历和操作。
2025-05-23 23:01:35
614
原创 小白学习顺序表 之 通讯录实现
在日常编程学习中,实现一个联系人管理系统。它不仅能让我们熟悉结构体、动态内存分配、文件操作等知识点,还能帮助我们更好地理解程序的模块化设计。结构体:使用结构体来组织和存储联系人的信息,方便对联系人进行管理。顺序表:顺序表是一种线性数据结构,通过动态内存分配实现了可变长度的存储。动态内存管理:使用mallocrealloc和free函数进行动态内存的分配和释放。文件操作:使用fopenfreadfwrite和fclose函数进行文件的读写操作。模块化设计。
2025-05-23 17:54:50
615
原创 小白刷题 之 如何高效计算二进制数组中最大连续 1 的个数
学习如何快速找出二进制数组中最长的连续 1 序列。这个问题在数据处理、网络传输和算法面试中经常出现,掌握它不仅能提升编程能力,还能加深对数组操作和循环控制的理解。数组操作通过索引访问数组元素(nums[i]使用sizeof计算数组长度(循环控制for循环的基本用法。条件判断if-else语句的应用。算法思想一次遍历:时间复杂度 O (n),高效处理大规模数据。动态更新:实时维护当前状态和历史最优解。C 语言基础函数定义与调用(标准输入输出(printf。
2025-05-22 23:14:36
254
原创 小白编程学习之巧解「消失的数字」
callocvsmalloc:分配n个大小为size的连续内存块,并初始化为0。✅ 优势:无需手动初始化数组,适合标记数组这种需要清零的场景。:仅分配内存,不初始化,内容为随机值。⚠️ 注意:若用malloc创建标记数组,需手动循环赋值为0,否则会出错。这道题看似简单,却考察了动态内存管理、边界条件处理、算法优化等多个核心知识点。细节决定成败:数组大小、初始化、内存释放等细节稍有不慎就会导致错误。算法思维的灵活性:同一问题可以有多种解法(标记法、原地修改、数学法),需根据场景选择最优方案。
2025-05-20 23:24:41
576
1
原创 小白顺序表学习之旅:从理论到代码实现
顺序表其实就是用一段连续的存储单元依次存储数据元素的线性结构。简单来说,就像我们排队一样,每个人(数据元素)都按照一定的顺序站在一排,彼此之间的位置是连续的。在计算机中,我们通常用数组来实现顺序表。首先,我们需要定义一个结构体来表示顺序表。INT* a;int size;// 元素个数// 内存容量} SL;// 定义一个结构体这里,a是一个指向存储数据的数组的指针,size表示当前顺序表中元素的个数,capacity表示顺序表的总容量。
2025-05-20 21:40:58
1970
原创 小白也能吃透 C 语言编译链接流程
步骤输入文件输出文件核心作用类比预编译.c.i处理宏、头文件、注释搬砖 + 拆备注编译.i.s翻译成汇编语言,查语法错误画施工图汇编.s.o翻译成二进制目标文件生产零件链接.o+ 库文件可执行文件合并文件,解决符号引用组装零件成房子脑图记忆法(自己动手画更印象深刻!翻译环境四步曲├─ 预编译(杂活小工):宏展开、头文件粘贴、删注释├─ 编译(翻译官):C代码→汇编代码,查语法├─ 汇编(零件工厂):汇编→二进制目标文件。
2025-05-19 18:29:18
962
原创 小白编程旅 ------ 文件操作详解------
简单来说,文件就是存储在硬盘、U 盘等存储设备上的一段数据。你可以把它想象成一个「盒子」,里面装着各种类型的数据,比如文本、图片、视频等。但这段数据并不会因为你重启电脑,而被清除!!!文本文件和二进制文件。文件操作是编程中非常重要的一部分,掌握了文件操作,你就可以让程序「记住」数据,实现更复杂的功能。
2025-05-19 08:00:00
876
原创 小白初识动态内存管理
空间开辟⼤⼩是固定的。数组在申明的时候,必须指定数组的⻓度,数组空间⼀旦确定了⼤⼩不能调整。读取用户输入的字符串,其长度在编译时是未知的,只能在运行时根据实际输入分配内存。静态分配的内存(如数组)在程序运行期间始终占用固定空间,即使不再使用。对于空间的需求,我们在编程中的需要更灵活的方式。有时候我们需要的空间⼤⼩在程序运⾏的时候才能知道,那数组的编译时开辟空间的⽅式就不能满⾜了。
2025-05-18 09:00:00
1618
原创 刷题心得:荷兰国旗问题与三指针法题目背景
对于原地排序问题,指针操作是关键,合理设计指针可以大幅提高效率。当问题涉及多个区域时,多指针法是一个值得尝试的方向。处理指针问题时,一定要明确每个指针的含义和边界条件,避免越界和逻辑错误。刷题不仅要追求 AC,还要深入理解解法背后的思想,做到举一反三。
2025-05-18 09:00:00
960
原创 小白深入理解计算机数据存储:整数、浮点数与字节序
#在计算机系统中,数据的存储方式是编程和系统设计的基础本次我学习了关于计算机中整数,浮点数,以及字节序的相关知识,我将以我的理解进行知识的分享。意义 无符号整数只能表示非负数值,其存储方式直接使用二进制原码。例如,一个 8 位无符号整数可以表示 0 到 255 之间的数值:例如 数值 5 的二进制表示:例如 数值 255 的二进制表示:signed int/char 等等类型有符号整数需要同时表示正数和负数,因此采用补码形式存储。补码的优势在于可以将减法运算转换为加法运算,简化硬件设计。补码的计算规则:
2025-05-17 10:00:00
1784
原创 小白初始 atoi函数并运用
通常为 32 位(4 字节),取值范围为 -2,147,483,648 到 2,147,483,647。strtol 是 C 语言中用于将字符串转换为长整型(long)的函数,比 atoi 更安全、更灵活。假如鼠鼠在超市购物,商品标签上写着价格(字符串形式),但收银机需要用数字来计算总价。字符串 → 长整型:将字符串中的数字部分转换为 long 类型。:从第一个数字字符开始,连续读取数字,直到遇到非数字字符为止。它就像一个 “翻译官”,能把你写的数字字符串(比如。:简单易用,适合快速转换明确的数字字符串。
2025-05-17 10:00:00
207
原创 小白 C 语言指针知识梳理:从基础到进阶
三要:1.要初始化或置NULL2.要匹配类型(如int*对应int)3.要释放动态内存并置空三不要:1.不要解引用野指针2.不要越界访问3.不要返回局部变量地址我个人学习到掌握指针需要结合内存模型多写多练,重点理解 "指针是地址的载体,解引用是操作的核心" 这一本质。
2025-05-16 19:25:58
350
原创 C初阶-结构体-联合体
像结构体一样,联合体也是由一个或者多个成员构成 这些成员可以不同的类型。联合体的特点是所有成员共用同一块内存空间。所以联合体也叫共用体。给联合体其中一个成员赋值,其他成员的值也跟着变化。但是编译器只为最大的成员分配足够的内存空间。
2025-05-16 13:10:15
542
原创 字符串函数学习
strlen函数用于计算字符串的有效长度(不包含字符串结束符'\0'str 为要计算长度的字符串。返回字符串的长度(类型为 size_t,即无符号整数)。
2025-05-13 09:47:17
731
原创 小白深入理解指针:从基础到进阶
在 C 和 C++ 等编程语言中,指针是一个强大而又复杂的概念,掌握指针对于理解程序的内存管理、数据结构等方面至关重要。下面我们将从认识不同类型的指针开始,逐步深入探讨指针数组和数组指针的奥秘。。
2025-05-12 15:14:55
799
原创 小白初始指针
这几天放假回家了,赶路的时候遇到一堆事,身心俱疲,回到家立马倒头就睡了导致学习进度慢了还有指针对于鼠鼠来说有点困难,要花好多时间理解和运用,所以博客写的时间就会慢些嘞。
2025-05-02 16:56:21
725
原创 小白初识函数——指针(01)
又到了鼠鼠发挥想象力的时候了,在鼠鼠看来,内存就像是一栋宾馆楼里面的房间;其中的房间用来住所谓的数据。其中一格就相当于一间房。当然这也只是鼠鼠的想法,专业属于来说,是把内存分为了一个个的内存单元其中一格的内存大小为1字节;那你问我,字节是什么,那鼠鼠就要说到说到了;计算机中常见的单位形象点的例子就相当于,XX宾馆一间房(字节)能住八个人(比特位),人(比特位)又分男(0)女(1)PS:以上只是举例这栋宾馆(1kb)能装下1024间房(字节),这座城市(1mb)能建下1024栋宾馆(1kb)
2025-04-29 10:00:00
563
原创 小白对学习操作符小结
鼠鼠今天为了学习函数栈帧,耗费的大量时间思考,终于理解了一些,虽然收获很大,但是今天的学习收获还是太少了,于是鼠鼠就决定再学一点,但是学点简单的。对两个操作数的对应二进制位进行或运算,只要两个对应位中有一个为 1,结果位就为 1,只有当两个对应位都为 0 时,结果位才为 0。对两个操作数的对应二进制位进行与运算,只有当两个对应位都为 1 时,结果位才为 1,否则为 0。对两个操作数的对应二进制位进行异或运算,当两个对应位不同时,结果位为 1,相同时结果位为 0。要注意的是位移操作只能对整数进行位移操作。
2025-04-27 23:04:59
306
原创 小白深入探索函数——函数栈帧
听大佬讲函数栈帧就犹如炼气期修士,在听化神大佬讲仙人事迹般,听不懂的同时大受震撼,让鼠鼠仿佛浮萍孤舟一般,在大佬们设计好的海洋上航行,仅仅只是把头伸到水下看一下,看到的就远超相信捏。
2025-04-27 19:59:41
914
原创 小白初识函数——扫雷
于是鼠鼠就准备先动手实现打印出来可视化先,但是围观的大佬笑到,如果你的雷在[4],[4]这个位置你不炸了么,并生动形象的写出了为什么,鼠鼠又开始怀疑人生了,那是不是要用很多if语句让周围这样排雷的时候的情况进行不同的区分,但是那工作量远超鼠鼠想象。同时用数组检测,为‘0’字符的区域才将字符零改为字符1作为雷区,当设置好一个雷区的时候,雷的数量就-1,为零时循环参值为假,所以结束循环,就不会继续埋雷了。开始编辑的时候什么思路都没,但是其实只要先不想着怎么写,该实现什么功能,就能想到很多,毕竟说比做容易嘛。
2025-04-25 19:16:45
881
原创 小白对学习数组小结
x==0 x==5(为五是因为我的展示表格是五格)-1 y == 0 y == 5-1从而打印实现,认真做下来之后还是收获满满。相当于一层前四间都住满了,还剩一对情侣,那么其中一位住第一层最后一间[0,5],那么另一位就住到下一层的第一间[1,0]的这间房。举个简单例子就是有十个人到了你管理的单位,你给的初始值就是给他们一人一间的房间,十个人你就给十间,一百个人就给100间。但是其编号有点特殊 第一间房间是0 第二间房间才是1,以此类推,当你要找第6个人的时候,你要去编号是5的房间找。
2025-04-25 13:06:13
263
原创 小白对C语言分支循环语句学习总结
3.for循环的第一个条件能够省略,但是要自己能理解,遇到了一次理解很深的代码,是两个for循环嵌套,第一个变量省略了,但是初始化都是0,第一个循环进入第二个循环的时候,第二个循环循环到条件值就不循环了,回到第一个循环,结果第一个循环第二次循环进入第二个循环时,第二个循环的值已经是达到条件,并没有被初始化,所以导致最后打印的结果是一个5个gg,让我有了对for循环的一次很深认知。1.有时候不注意条件的话就会无限循环,这就导致我要查找我的循环条件的错误,所以我使用while循环时都要检查一下条件。
2025-04-24 10:57:24
244
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人