自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 【Linux】常见的基本指令

linux基本命令

2024-07-19 19:30:00 758

原创 【C++】C++内存管理

1. C/C++内存分布2. C语言中动态内存管理方式3. C++中动态内存管理4. operator new与operator delete函数5. new和delete的实现原理6. 定位new表达式(placement-new)7. 常见面试题

2024-07-17 11:12:47 536

原创 【C++】类和对象下

1. 构造函数2. Static成员3. 友元4. 内部类5.匿名对象6.拷贝对象时的一些编译器优化

2024-07-15 18:28:48 958

原创 【C++】类和对象中及日期类的实现

1. 类的6个默认成员函数2. 构造函数3. 析构函数4. 拷贝构造函数5. 赋值运算符重载6. const成员函数7. 取地址及const取地址操作符重载

2024-07-14 18:30:00 853

原创 【C++】类和对象上

Ⅰ、类的引入Ⅱ、类的定义Ⅲ、类的访问限定符及封装 1 .类的访问限定符及封装 2 .封装Ⅳ、类的作用域Ⅴ、类的实例化Ⅵ、类对象模型 1 .计算类对象的大小 2 .类对象的存储方式 3 .结构体内存对齐规则Ⅶ、this指针 1 .this指针的特性

2024-07-13 17:48:42 524

原创 【C++】基础语法

1. C++关键字2. 命名空间3. C++输入&输出4. 缺省参数5. 函数重载6. 引用7. 内联函数8. auto关键字(C++11)9. 基于范围的for循环(C++11)10. 指针空值---nullptr(C++11)

2024-07-10 17:19:32 744

原创 【C语言】编译—链接—预处理

程序的翻译环境程序的执行环境详解:C语言程序的编译+链接预定义符号介绍预处理指令 #define宏和函数的对比预处理操作符#和##的介绍命令定义预处理指令 #include预处理指令 #undef条件编译

2024-07-03 22:00:34 651

原创 【C语言】文件操作

Ⅰ、为什么使用文件Ⅱ、什么是文件 1 .程序文件 2 .数据文件 3 .文件名Ⅲ、文件的打开和关闭 1 .文件指针 2 .文件的打开和关闭Ⅳ、文件的顺序读写 1 .对比一组函数:Ⅴ、文件的随机读写 1 .fseek 2 .ftell 3 .rewindⅥ、文本文件和二进制文件 ​编辑

2024-07-01 14:47:26 737

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

Ⅰ、为什么存在动态内存分配Ⅱ、动态内存函数的介绍 1 .malloc和free 2 .calloc 3 .reallocⅢ、常见的动态内存错误 1 .对NULL指针的解引用操作 2 .对动态开辟空间的越界访问 3 .对非动态开辟内存使用free释放 4 .使用free释放一块动态开辟内存的一部分 5 .对同一块动态内存多次释放

2024-06-29 15:04:14 819

原创 【数据结构】树—二叉树—堆—二叉树的链式结构

1.树概念及结构2.二叉树概念及结构3.二叉树顺序结构及实现4.二叉树链式结构及实现

2024-06-28 19:42:37 921

原创 【C语言】结构体—枚举—联合

结构体结构体类型的声明结构的自引用结构体变量的定义和初始化结构体内存对齐结构体传参结构体实现位段(位段的填充&可移植性)枚举枚举类型的定义枚举的优点枚举的使用联合联合类型的定义联合的特点联合大小的计算

2024-06-27 18:45:40 914

原创 【C语言】字符/字符串+内存函数

Ⅰ、字符函数和字符串函数1.strlen2.strcpy3.strcat4.strcmp5.strncpy6.strncat7.strncmp8.strstr9.strtok10.strerror11.字符函数12. 字符转换函数Ⅱ、内存函数

2024-06-26 21:30:00 673

原创 【数据结构】栈和队列与循环队列

栈,队列,循环队列

2024-06-25 20:00:00 613

原创 【C语言】进阶指针

1. 字符指针2. 数组指针3. 指针数组4. 数组传参和指针传参5. 函数指针6. 函数指针数组7. 指向函数指针数组的指针8. 回调函数9. 指针和数组面试题的解析

2024-06-24 19:15:00 701

原创 【数据结构】带头双向循环链表的实现及链表顺序表的区别

实现这个链表最重要的就是理清楚连接关系:这里我给出两个动图,模拟这个关系插入:删除:这里我们可以用两种方法,一种是采取二级指针的方法,另一种是直接创建一个表头,然后把表头地址返回去,这里我们采用第二种:头插——头删:头插:头删:尾插——尾删:尾插:尾删:查找——打印:注意:指定位置pos前插入,删除pos位置:pos前插入: 删除pos位置:链表销毁:这一个要从哨兵位的下一个节点开始,循环直到不等于哨兵位结束: 学了带头双向循环链表之后,我们可以快速实

2024-06-23 19:02:21 398

原创 【数据结构】链表的大概认识及单链表的实现

单链表的简单实现

2024-06-22 21:11:58 941

原创 【C语言】数据的存储

1. 数据类型详细介绍2. 整形在内存中的存储:原码、反码、补码3. 大小端字节序介绍及判断4. 浮点型在内存中的存储解析

2024-06-21 15:35:48 983

原创 【数据结构】顺序表

顺序表的简单实现

2024-06-19 06:00:00 1149

原创 【C语言】初阶指针

1. 指针是什么2. 指针和指针类型3. 野指针4. 指针运算5. 指针和数组6. 二级指针7. 指针数组

2024-06-18 18:30:00 662

原创 【C语言】操作符

算术操作符移位操作符位操作符赋值操作符单目操作符关系操作符逻辑操作符条件操作符逗号表达式下标引用、函数调用和结构成员

2024-06-17 11:40:00 542

原创 构造-析构-拷贝构造-赋值运算符重载-const成员函数

const成员函数调用非const成员函数,调用该const成员函数的对象已经被设置为const类型,只可访问不能修改,在用该const成员函数访问其他非const成员函数时可能会发生修改操作,因此,const成员函数不能调用非const成员函数。const修饰的对象实则修饰的时该对象的this指针,并且const修饰的成员不能进行修改,如果使用const调用非const成员函数,可能会将const对象进行修改。下面的程序我们会看到,编译器 生成的默认析构函数,对自定类型成员调用它的析构函数。

2024-03-17 17:51:20 788

原创 C++类和对象

4、结构体的大小就是对齐到最大值的整数倍的大小!若是0则是大端存储!2、后续的成员变量首先取到该类型的的大小,与默认对齐数两者之间的最小值,作为该变量类型的对齐数,按照这个对齐数,该变量在存储的时候,对应到取到的对齐数的整数倍处。如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整 体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。结构体进行规定对齐是跟底层的硬件有关系的,每种硬件对于数据的读取是不同的,为了提高硬件读取数据的效率,所以在代码层进行了结构体内存对齐。

2024-03-14 18:52:07 848

原创 C++入门 命名空间-缺省参数-函数重载-引用-内联-auto-范围for循环-指针nullptr-cout/cin

总归就是,在调用函数后 c 的空间已经在函数结束的时候被系统释放了,然后返回的引用是c的别名,还是指向c原来指向的空间,该空间已经被系统回收,所以结果是个随机值。在编程时,常常需要把表达式的值赋值给变量,这就要求在声明变量的时候清楚地知道表达式的。接返回,而是传递实参或者返回变量的一份临时的拷贝,因此用值作为参数或者返回值类型,效。函数,就存在冲突问题。中,变量、函数和后面要学到的类都是大量存在的,这些变量、函数和类的名称将都存。的基础之上,容纳进去了面向对象编程思想,并增加了许多有用的库,以及编程范式。

2024-03-07 21:48:45 889

原创 插入,希尔,选择,堆排,快排,归并,计数,冒泡

在选的过程中,最终前面的和后面的终究会相等,由于后面选小是先选的,所以相等的地方一定是比key小或者相等,这样是符合比key小的在左边,比key大的再右边,key值的位置就被确定了。前后指针法同样的是前指针找大,后指针找大的前一个,前指针找到小的之后,就与prev指针+1的地方进行交换。实现之前,我们需要知道需要找一个基准key值用来作为参照物比大小,用第一个和最后一个都不太合适,所以我们进行一个比较,找出相对中间的值,如果不找的话,我们在对已经有序的数据再次排序的时候,可能会出现溢出访问的情况。

2024-01-27 21:10:13 1912

原创 Linux权限

目录的可执行权限是表示你可否在目录下执行命令。如果目录没有-x权限,则无法对目录执行任何命令,甚至无法cd进入目即使目录仍然有-r读权限(这个地方很容易犯错,认为有读权限就可以进入目录读取目录下的文件)而如果目录具有-x权限,但没有-r权限,则用户可以执行命令,可以cd进入目录。但由于没有目录的读权限所以在目录下,即使可以执行ls命令,但仍然没有权限读出目录下的文档。

2024-01-23 14:04:10 895 1

原创 二叉树前序遍历,翻转二叉树,另一棵树的子树,先序遍历创建二叉树

这个题要求我们先用先序遍历创建一颗二叉树,首先我们需要创建一个结构体,然后对二叉树进行先序递归创建,创建的时候我们需要使用到数组,创建一个数组,然后用gets()函数对数组进行输入内容。注意:我们在递归的时候,我们可能不能很明白的使用用 指针++ 操作,由于建立了函数栈帧,我们递归调用函数的时候就算进行了 指针++ 的操作,在上一级函数中,*arr的值并没有指向下一个!4. 先序遍历创建二叉树。1. 二叉树的前序遍历。3. 另一棵树的子树。

2024-01-05 21:20:12 378 3

原创 二叉树最大深度,检查两棵树是否相同,单值二叉树

二叉树简单OJ题,初步了解二叉树。

2024-01-05 14:48:09 385 1

原创 二叉树链式结构的实现

二叉树的相关功能实现

2024-01-03 21:19:52 753 1

原创 堆的简单实现,堆排序,TopK问题

堆的简单实现以及堆排序。

2024-01-02 17:42:16 1228

原创 Linux常见指令【下】

Linux相关指令

2024-01-01 16:56:13 1811

原创 Linux常见基本指令【上】

表示 当前目录下的所有文件也就是复制的文件 后面的一串表示 将当前(j) 目录下的上级(k)目录 的上级目录下 的a目录下 的b目录. 意思就是拷贝当前目录(j)下的所有文件粘贴到b目录下。cp ./k/j ./a/b -rf 命令表示从当前目录下的k目录下的j目录 复制一份放在 当前目录下的a目录下的b目录里面。2. 当第二个参数类型是文件时,mv命令完成文件重命名,此时,源文件只能有一个(也可以是源目录名),它 将所给的源文件或目录重命名为给定的目标文件名。

2023-12-30 19:03:45 961 1

原创 C语言用简单链表实现队列

队列:只允许在一端进行插入数据操作,在另一端进行删除数据操作的特殊线性表,队列具有先进先出 FIFO(First In First Out) 入队列:进行插入操作的一端称为队尾 出队列:进行删除操作的一端称为队头.队列也可以数组和链表的结构实现,使用链表的结构实现更优一些,因为如果使用数组的结构,出队列在数 组头上出数据,效率会比较低。简单队列就这样实现了,如有问题,还请大佬指点!1.队列的概念及结构。

2023-11-17 09:00:00 47

原创 用C语言实现简单栈

栈:一种特殊的线性表,其只允许在固定的一端进行插入和删除元素操作。进行数据插入和删除操作的一端 称为栈顶,另一端称为栈底。栈中的数据元素遵守后进先出LIFO(Last In First Out)的原则。压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈。栈的实现一般可以使用数组或者链表实现,相对而言数组的结构实现更优一些。因为数组在尾上插入数据的 代价比较小。简单的栈就这样实现了,如有什么问题,还请大佬指点!

2023-11-16 20:45:57 36 1

原创 [数据结构】用C语言简单实现基础单项链表

在指定位置之前插入:SListNode* SLTInsert(SListNode** pphead, SListNode* pos, SLTDateType x)概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表 中的指针链接次序实现的。查找:SListNode* SListFind(SListNode* plist, SLTDateType x)链表可分为单项或者双向链表,带头或不带头链表,循环或者不循环链表,今天我们讲的是无头单项非循环链表。

2023-11-04 16:59:24 42 1

原创 【数据结构】C语言实现基本顺序表——增删查改

静态顺序表的定长数组导致N定大了,空 间开多了浪费,开少了不够用。所以现实中基本都是使用动态顺序表,根据需要动态的分配空间 大小,所以下面我们实现动态顺序表。任意位置插入:void SLInsert(SL* psl, int pos, SLDataType x)然后我们就可以实现增删查改了,为了保证函数的正确性,建议写一个函数就自行测试以下。为了便于检查,我们先对顺序表的初始化,打印,和销毁函数进行实现。打印:void SLDestroy(SL* psl)2:动态顺序表:使用动态开辟的数组存储。

2023-10-30 21:35:40 443

原创 【C语言】结构体,枚举,联合

4. 如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整 体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。假设该结构体的空间从0处开始开辟,红色圆圈代表开辟给结构体但是没有使用的空间,绿色的圆圈代表给结构体内元素使用的空间。当最大成员大小不是最大对齐数的整数倍的时候,就要对齐到最大对齐数的整数倍。那在设计结构体的时候,我们既要满足对齐,又要节省空间,如何做到:我们可以让占用空间小的成员尽量集中在一起。对于计算结构体的大小的时候,我们需要了解结构体内存对齐的知识。

2023-10-18 13:49:11 33 1

原创 C语言* 指针

指针数组:是存放指针的数组,将指针作为数组的元素存放在数组里面,数组的每个元素的类型是指针类型,他实际上是个数组;数组传参,形式也可以是指针。指针是C语言程序开发中一个非常重要的东西,今天学习以下指针,我将从以下几个小点去描述几种指针。parr1表示数组,*parr1[10]表示数组指针,parro1数组里面存放着10个指针。整体表示有10个指针存放在数组parr1中,每个指针指向一个函数的地址。数组指针:是将数组的地址存放在指针里面,他实际上是个指针;函数指针数组的作用是把函数的地址存到一个数组当中。

2023-10-16 18:02:41 75 1

原创 C语言文件操作

今天我们将要聊聊c语言中的文件操作,我们将围绕以下几个方面去简单探究:1. 为什么使用文件2. 什么是文件3. 文件的打开和关闭4. 文件的顺序读写5. 文件的随机读写1. 为什么使用文件我们前面学习结构体时,写了通讯录的程序,当通讯录运行起来的时候,可以给通讯录中增加、删除数 据,此时数据是存放在内存中,当程序退出的时候,通讯录中的数据自然就不存在了,等下次运行通讯 录程序的时候,数据又得重新录入,如果使用这样的通讯录就很难受。

2023-10-11 17:51:11 27 1

原创 C语言简单实现通讯录

首先,我们要构建整体思路,我们需要先设计两个结构体,一个结构体对单个联系人的信息进行保存,另一个结构体进行对联系人的计数。对于联系人的信息,我们需要规定各个信息所需最小大小,然后对这些规定的大小用宏定义为常量。然后我们需要对各个功能的实现设计一个初步的函数,进行大体构造,为了方便调用,我们可以把它们统一放在“test.h"文件里面。通讯录可以用来存储1000个人的信息,每个人的信息包括:姓名、性别、年龄、电话、住址。进行大体构造之后,我们就可以对各个函数进行实现了。这是删除函数,对指定联系人进行删除处理。

2023-10-05 18:11:49 113

原创 用c 实现简单三子棋

大家好,今天将要讲解如何用c实现简单的三子棋。接下来就用简单的代码和简易的注解给大家通俗易懂的讲解。首先我们需要对实现三子棋的过程做一个初步的规划,我们要先知道,流程是什么。2.对棋盘进行打印,让玩家直观的看见棋盘然后愉快的下棋。然后我们需要实现游戏的具体下棋过程,也就是game();1.先设定一个简易的3x3的棋盘,对他进行一个初始化。学习编程的新手,有什么问题还请大佬私聊指正。我们可以把函数声明放在中。4.双方下棋之后需要判断输赢还是和局。简单来说,我们的流程就是。

2023-09-15 17:46:41 27

空空如也

空空如也

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

TA关注的人

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