自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】C++ 实现可扩展 TCP 服务器|回响、字典、远程命令

客户端输入什么内容,最后就能在收到的结果里看到自己刚才发送的数据,以此验证服务器‑客户端通信是否正常。用 lambda 把 (远程命令业务/字典业务/回响业务)打包成回调函数,传给 TcpServer。

2026-09-01 15:58:46 333

原创 【Linux】让我们自己来实现一个Shell命令行解释器!

命令解析、执行、退出码维护需要定义全局的核心运行参数并完成初始化,主要包含命令行参数数组、命令行参数个数、上一条命令的退出码等。//命令行参数表//最后一次退出码。

2026-09-01 09:59:01 451

原创 【Linux】一文吃透 ext2 文件系统:从磁盘块组、inode 到挂载完整拆解!

在 Linux 中,我们日常操作的 “文件” 和 “目录”,本质上都是内核通过一套统一的数据结构管理起来的抽象对象。磁盘上的真实数据 → 内存中的路径缓存 → 进程视角的文件句柄。这里我们用一个例子来梳理文件系统!我们的程序怎么进行库函数的调用呢?1.内核先通过路径查找,找到对应的2.顺着,拿到inode3.读出inode里的i_block数组,找到库文件在硬盘的哪个扇区4.先把库从硬盘搬到内核手里,这时候还没给进程用。

2026-07-11 16:01:52 366

原创 【Linux】程序地址空间(是什么?为什么?)

我们在学习C语言时,都接触过这样的空间布局图。

2026-03-17 21:56:40 556

原创 【C++11】详解lambda!

lambda表达式语法使用层而言没有类型,所以我们一般是用auto或者模板参数定义的对象去接收lambda对象。2.lambda表达式的格式 :[capture-list] (parameters)-> return type {function body}3.

2026-03-17 14:30:00 323

原创 【C++11】基础性能

在C++98中,标准允许使用花括号{}对数组或者结构体元素进行统一的列表初始值设定。C++11以后想统一初始化方式,试图实现一切对象皆可用{}初始化,{}初始化也叫做列表初始化。内置类型支持,自定义类型也支持,自定义类型本质是类型转换,中间会产生临时对象,最后优化了以后变成直接构造。{}初始化的过程中,可以省略=

2026-03-14 15:00:00 339

原创 【C++11】右值引用和移动语义

C++98的C++语法中就有引用的语法,而C++11中新增了右值引用的特性,C++11学习之后称之前的引用为左值引用。。

2026-03-10 15:54:33 427

原创 【C++】红黑树实现

红黑树是一棵二叉搜索树,它的每个结点,可以是红色或者黑色。通过对任何一条从根到叶子的路径上各个结点的颜色进行约束,红黑树确保没有一条路径会比其他路径长出2倍,因此是接近平衡的。(没有AVL树那么严格)

2026-01-14 14:54:56 680

原创 【C++】认识多态

多态是一个继承关系下的类对象,去调用同一函数,产生了不同行为。就比如:student继承了person,person对象买票全价,student对象买票就会优惠。

2025-09-07 10:45:00 965

原创 【C++】二叉搜索树

二叉搜索树又称二叉排序树,它可以是一棵空树,具有以下几个性质1.若左子树不为空,在左子树上所有的值都小于根节点2.若右子树不为空,在左子树上所有的值都大于根节点3.它的左右子树也分别为二叉搜索树4.它可以支持插入相等的值(允许冗余),也可以不支持插入相等的值(不允许冗余),具体要看使用场景。

2025-08-28 10:00:00 772

原创 【C++】优先级队列Priority_queue的模拟实现

仿函数是一种重载了operator()的类或结构体,它的对象可以像函数一样使用。通过重载函数调用运算符,仿函数可以实现自定义的操作行为。例如可以priority_queue可以改变自己的默认仿函数std::less变成std::greater,这样就可以实现一个元素从小到大的排列顺序,也就是大堆。即对于不同的堆传不同的仿函数类以实现不同的需求。// 创建一个学生身份结构体int age;// 构造函数:name(n), age(a){}// 自定义仿函数//按照年龄从大到小排序。

2025-08-03 10:30:00 695

原创 【C++】探索vector内部机制的模拟实现

如果模板T是string,vector等自定义类型,则程序结束回收时就会引发内存错误。而对于内置类型则可以用memcpy。

2025-03-28 15:00:00 2019

原创 【C++】string类内部机制的模拟实现

在我们对STL中的string类有了一个基本的认识后,今天我们手动的从0到1去模拟实现一个STL库中的string类中的一些常用接口。

2025-03-18 15:43:26 744

原创 C++中的new和delete

调用operator new函数申请空间·在申请的空间上执行。

2025-02-28 15:08:17 302

原创 C/C++内存管理

注意:申请和释放单个元素的空间,使用new和delete操作符,申请和释放连续的空间,使用new[]和delete[]操作符,注意。需要注意的是,两个紧挨着定义的指针变量,所指向的malloc出来的两块内存并不一定的是紧挨着的,所以会产生内存碎片。,*pchar是对pchar这个指针进行解引用,表示首元素(常量字符串)的地址,存放在代码段(常量区)。解析:num是数组名,是一个整型数组,存放在栈区,char1也是数组名,是一个字符型数组,也存放在栈区。*pchar在哪里?

2025-02-27 17:02:27 987

原创 C++ 类和对象(下)

3.以下成员变量必须放在初始化列表位置进行初始化,否则编译会报错·引用成员变量·const成员变量·没有默认构造的类类型变量。

2025-02-13 14:05:16 980

原创 C++ 类和对象 (流插入、流提取、const)

1.C++中,可以通过重载流插入流提取运算符来定义操作2.流插入运算符 << 用于将数据插入到输出流中,它的重载函数应该以ostream&类型作为返回值,并以一个ostream&类型的参数和要输出的数据作为参数3.流提取运算符 >> 用于从输入流中提取数据。它的重载函数应该以istream&类型作为返回值,并以一个istream&类型的参数(通常是输入流对象)和要提取到的数据的引用作为参数4.流插入操作符不可以重载成员函数,因为它们参数的顺序不可以改变。

2025-02-11 20:56:22 1205 1

原创 日期计算器的实现

平日里我们经常会涉及到日期计算的问题,比如:几天后是几月几日,特定的两个日期之间隔了几天等等,我们会通过查日历或通过上网使用日期计算器来实现,今天我们就来探讨日期计算器的代码以及实现原理。

2025-02-08 16:39:01 1234

原创 C++ 类与对象(中)

成员变量会初始化,要求调用这个成员变量的默认构造函数初始化。若这个成员变量,没有默认构造函数,就会报错。

2025-02-04 17:01:31 1101

原创 C++ 类与对象(上)

class为定义类的关键字,Stack为类的名字,{}中为类的主体,(类定义结束时后面分号不能省略)类体中内容称为类的成员:类中的变量称为成员变量,类中的函数称为类的方法或成员函数。public://成员函数perror("malloc申请空间失败");return;top = 0;int top()private://成员变量int* array;int top;为了区分成员变量,一般会习惯成员变量加上一个特殊标识,如成员前面或后面加上_或m开头。

2025-01-21 22:58:37 880

原创 C++入门(一)

需要使用到namespace关键字,后面跟命名空间的名字,然后在跟一个{},在大括号里的即为命名空间的成员。1.1.1正常的命名空间定义//定义变量int a = 66;//定义函数//定义类型int val;使用:如果我们要访问变量a,需要加上命名空间及作用域限定符::int main()1.1.2命名空间嵌套int a = 10;int b = 20;缺省参数是声明或定义函数时为函数的参数指定一定缺省值。如果没有指定实参则采用该形参的缺省值,否则使用指定的实参。

2024-07-22 19:54:33 458

原创 C语言中的文件操作

磁盘(硬盘)上的文件是文件。但是在程序设计中,我们一般谈的文件有两种:程序文件、数据文件。

2024-04-14 22:17:38 2146 3

原创 C语言中的动态内存管理

引言:为什么要有动态内存分配呢?我们已经掌握的内存开辟方式有创建一个整型变量或数组变量等等,但这些空间开辟大小是固定的,数组空间一旦确定了大小就不能调整。所以C语言中引入了动态内存开辟,让程序员自己可以申请和释放空间,就比较灵活了。

2024-04-14 10:00:00 822 1

原创 C语言---结构体内存对齐与位段

引言:C语言中我们学习过结构体,结构体(struct)是一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构。在定义结构体时,编译器会根据平台的要求对结构体的内存进行对齐,以提高内存访问的效率。

2024-04-13 11:08:55 641 3

原创 C语言---整数、浮点数在内存中的存储

科学计数法中的E是可以出现负数的,IEEE 754规定,存入E的真实值时必须加上一个中间数,对于8位的E,这个中间数是127,对于11位的E,这个中间数是1023。对于64位的浮点数 (double类型),最高的1位存储符号S,接着的11位存储指数E,剩下的52位存储有效数字M。对于32位浮点数(float类型),最高的1位存储符号位S,接着的8位存储指数E,剩下的23位存储有效数字M。(存储)模式: 是指数据的低位字节内容保存在内存的低地址处,而数据的高位字节内容,保存在内存的高地址处。

2024-04-09 23:12:21 562 3

原创 C语言内存函数来啦!

之前我们学习了字符(串)函数,它们能够对内存进行一定操作,但无法处理一些非字符(串)的数据。今天我们就来学习内存函数~

2024-04-01 18:39:33 353

原创 C语言--字符和字符串函数

函数声明:char * strncat ( char * destination, const char * source, size_t num );函数功能:函数返回字符串str2在字符串str1中第一次出现的位置,若搜索到,则返回str1的首字符地址,否则将返回NULL。2.若source指向字符串的长度小于num的时候,只会将字符串中到\0的内容追加到destination指向的字符串末尾。函数声明:char * strtok ( char * str, const char * sep);

2024-03-26 10:44:55 813 1

原创 C语言“大怪兽”--指针详解(三)

这段代码本质上是首字符h的地址存放到pstr中,也就是把一个常量字符串的首字符的地址放到指针变量中,接下来我们看一道相关题目。这就意味着我们假设 0 地址处放着无参,返回类型是void的函数, 最后是调用0地址处放的这个函数。( void(*)() )0 --将0强制类型转化为void(*)() 的函数指针类型。数组指针,顾名思义是指针变量,存放的是数组的地址,是能够指向数组的指针变量。typedef是一个关键字,是用来类型重命名的,可以将复杂的类型简单化。base:指向要排序的数组的第一个元素的指针。

2024-03-19 16:07:49 637 1

原创 C语言“大怪兽”--指针详解(二)

前面我们已经学习了指针的基本概念,接下来我们继续深入指针世界!

2024-03-17 14:03:12 495 7

原创 C语言“大怪兽”--指针详解(一)

1.在生活中有朋友来到你家小区找你玩,倘若没有告知他楼层和门牌号,他就要在偌大的小区一户户找,可见效率之低,但如果我们根据楼层和门牌号去编号,就会得到502、603、1502...等等房间号,朋友就可以通过房间号迅速定位到你的具体位置。好了,以上就是指针系列的第一篇博客啦,希望我的分享能让大家更详细了解指针,如果文章中有错误的地方,还请大佬评论区指正,欢迎大家提出意见。void*指针是用来接收不同类型数据的地址,当我们不知道指针是什么类型的,就可以使用void*接收,这样的设计可以实现泛型编程的效果。

2024-03-12 18:08:25 1041 3

原创 C语言---简易计算器的实现

序言:在学习了C语言函数调用、函数指针数组、回调函数后,我们可以用三种方法实现简易计算器的功能。

2024-02-06 22:03:58 8426 2

原创 C语言一一扫雷小游戏

到这里就到了本篇博客的尾声了,小编想通过实现扫雷小游戏来检验近期C语言的学习成果,如有错误,欢迎大家到评论区指正!

2024-01-19 20:05:24 1849 1

原创 初识C语言

从最基础的C语言学起,紧跟着课程进度完成学习,在gittee上要努力完成小绿点的点亮,同时在学习的路上利用优快云软件写博客提升编程水平,重在坚持!从目前跟进的课程来看,除了每周约三次三小时的课之外,每天至少抽出一小时来复习以及熟练掌握学到的知识,积极动手去写代码,依旧重在坚持,希望自己能坚持下去!非科班出身的双非一本大三学生一枚,对于本专业前程的迷茫与不确定性,选择独自“破圈”,想凭借自己的努力做一些自己认为有意义的事情。刚开始不敢妄下断言,希望自己能踏踏实实的打好基础,未来进入一个中上的公司工作。

2023-11-23 23:30:55 452

空空如也

空空如也

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

TA关注的人

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