自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

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

2023年4月10日 +100天,但顺着我们正常的计算思维,列写几个例子,其实很简单。拷贝构造和赋值运算符重载的区别在于拷贝构造用于对象构造时使用,而赋值运算符重载用于已存在对象赋值时使用。这两个运算符一般不需要重载,使用编译器生成的默认取地址的重载即可,只有特殊情况,才需要重载,比如想让别人获取到指定的内容。后续处理有资源的对象时,需要先把旧空间释放,再开一块同样大小的空间,进行数据拷贝。默认生成的拷贝构造就够用,默认拷贝会对内置类型进行浅拷贝。.这样的输入的就是错误的。,拷贝构造一个临时变量,避免对。

2023-04-14 19:18:43 381

原创 【C++】类和对象(中)—构造函数|析构函数|拷贝构造|赋值重载

那在创建对象时,可否创建一个与已存在对象一某一样的新对象呢?

2023-03-28 12:45:15 693

原创 【C++】类和对象(上) —— this指针

/ 类体:由成员函数和成员变量组成 };// 一定要注意后面的分号!!!class为定义类的关键字,className为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略类体中内容称为类的成员:类中的变量称为类的属性或者成员变量;类中的函数称为类的方法或者成员函数声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。类声明放在.h文件中,成员函数定义放在.cpp文件中,注意:成员函数名前需要加类名::一般情况下,我们都是用第二种方法。

2023-02-04 22:49:04 754 2

原创 【Linux】小程序进度条

前面讲那么多,终于到进度条了。有人可能要问了,那前面那些有什么用呢?但这时又又又出现问题了:count>10以后个位一直不变了。其实进度条也是回车换行的问题,大同小异,我们一起来看看吧。显示器设备的刷新策略就是行刷新\n ,即进行刷新!暂时保存的地方是:用户C语言级别的缓冲区。没有\n ,字符串会暂时保存起来。那为什么会出现这种现象呢?

2023-01-10 12:09:36 805 18

原创 【Linux】vim编辑器的使用及2分钟完成vim配置

因为我已经配置过vim了,所以自动显示行号。

2023-01-07 16:39:36 261 5

原创 【Linux】程序的翻译(图文详解)

预处理是C语言的一个重要的功能,它由预处理程序单独完成,当对一个源文件进行编译时,系统自动引用预处理程序,预处理在源代码编译之前根据内置预处理指令对其进行的一些文本性质的操作,对源程序编译之前做一些处理,生成扩展的C源程序(本质还是C语言代码)链接程序要解决外部符号访问地址问题,就是将一个文件中引用的符号与该符号在另一个文件中的定义连接起来,从而使有关的目标文件连成一个整体,最终成为可被操作系统执行的可执行文件。我们安装的vs2022也好,vs2019也好,其中最重要的就是下载并安装语言的头文件和库文件!

2023-01-07 09:42:54 206 9

原创 Linux权限和粘滞位

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

2023-01-04 20:20:20 70 4

原创 【数据结构】八大排序

稳定的排序有:直接插入排序、冒泡排序、归并排序不稳定的排序有:希尔排序、选择排序、堆排序、快速排序、计数排序。

2023-01-04 11:28:18 153 1

原创 【Linux】Linux常见基本指令超详细+动图 手把手教你linux命令(二)

head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的开头至标准输出中,而 tail 想当然就是看档案的结尾。公历是现在国际通用的历法,又称格列历,通称阳历。◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup;对文本内容进行排序,排序后的顺序类似于类似于strcmp的比较,按照 ascii码值 排序,-r 选项降序。

2022-12-26 10:44:55 344 2

原创 【Linux】Linux常见基本指令超详细+动图 手把手教你linux命令 (一)

cp指令用于复制文件或目录,如同时指定两个以上的文件或目录,且最后的目的地是一个已经存在的目录,则它会把前面指定的所有文件或目录复制到此目录中。-a 将所有章节的都显示出来,比如 man printf 它缺省从第一章开始搜索,知道就停止,用a选项,当按下q退出,他会继续往后面搜索,直到所有章节都搜索完毕。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好那些尚不存在的目录,即一次可以建立多个目录。touch命令参数可更改文档或目录的日期时间,包括存取时间和更改时间,或者新建一个不存在的文件。

2022-12-23 12:00:01 291 11

原创 【数据结构】之二叉树链式结构实现

🐲 一棵二叉树是结点的一个有限集合,该集合:   1.或为空   2.或由一个根节点加上两棵称为左子树和右子树的二叉树组成   由此我们可以看出:   1️⃣二叉树不存在度大于2的结点   2️⃣二叉树的子树有左右之分,次序不能颠倒,因此二叉树是有序树   ⚠️以上几种情况都是二叉树!   1️⃣满二叉树:一个二叉树,如果每一个层的结点数都达到最大值,则这个二叉树就是满二叉树。也就是说,如果一个二叉树的层数为2k-1,且结点总数是 ,则它就是满二叉树。   2️⃣完全二叉树:完全二叉树是效

2022-12-07 15:48:16 278

原创 【数据结构】—循环队列

我们需要考虑极端情况,rear在数组的最后一个,rear+1 怎么等于front。和上面判空判满一样我们都要考虑极端情况,fornt走到k+1时,要重置front。我们现在学了链表是不是一定要用链表实现呢?取模法:每次++,下一次都可能越界,就%= k+1处理一下。增加一个指针rear的前指针(实现起来麻烦,不建议)同理,rear走到k+1也要重置为0。的位置,也就是下图中的5的位置。所以我们用数组来实现循环列表。的时候,队尾的数据应该在。极端思维:当rear在。

2022-11-22 18:54:21 132 1

原创 栈实现队列

最后的free接口要注意,obj是MyQueue*指针,它指向的空间还有2个ST类型的空间也是需要释放的。这样队列头的数据就会到栈顶,在取栈顶数据就可以了。这里的思路和队列实现栈的思路大同小异。获取栈顶数据把数据转到popst中。用来倒数据,用它们其中一个来。元素的入队顺序,用另一个来。

2022-11-21 18:39:46 79

原创 数据结构之C语言队列实现栈

对于队列我们要进行入队和出队的操作,如果是使用数组来实现的话,那么我们所需要的时间开销就很大,需要不停的挪动数据。但是反过来看链表的话,就方便了许多,不需要频繁的挪动数据,入队出队时的操作都显得相对容易和快速。把非空队列的前n-1个元素转移到空队列中,再把空队列中的最后一个元素pop掉。创建两个队列,保存一个队列存数据不为空,另一个队列为空。两个队列都为空就为true。直接在非空队列插入即可。q1为空就在q1插入。q2为空就在q2插入。

2022-11-21 16:52:48 487

原创 数据结构---复制带随机指针的链表

给定一个链表,每个节点包含一个额外增加的随机指针,该指针可以指向链表中的任何节点或空节点。要求返回这个链表的深度拷贝。大家不会的可以学我画个图,真的很有用。有问题可以私信我,我也是刚学,咱们可以探讨探讨。这时每个copy的前一个就是原节点。

2022-11-12 10:20:15 129

原创 C语言进阶—程序环境和预处理

FILE进行编译的源文件LINE文件当前的行号DATE文件被编译的日期TIME文件被编译的时间STDC如果编译器遵循ANSI C,其值为1,否则未定义这些预定义符号都是语言内置的这些预定义符号都是语言内置的。return 0;}#define 定义的符号,在翻译环境中的预编译阶段,会被替换。我们可以用宏做一些简单的计算问题# define ADD(x , y)((x) +(y)) //定义两个数相加 //这里注意#define是不管数据的类型的(

2022-10-17 20:47:24 185

原创 C语言实现通讯录(文件版)实现数据可以保存到文件,也可以从文件中加载数据

我们创建一个结构体tmp,把信息读到tmp里,再把tmp赋给pc->data[pc->sz].我们是以二进制形式写入和读的所以这里面的东西我们都看不懂,没关系,计算机看的懂就可以。2. 添加一个函数,在通讯录打开的时候,可以把文件中的信息加载到通讯录中。1. 添加一个函数,在退出通讯录的时候把信息到保存到文件中。第一个参数: 指向要写入的元素数组的指针,转换为常量。第二个参数:要写入的每个元素的大小(以字节为单位)有不懂的可以私信我,我们可以交流一下。我们只需要完成两个函数的添加就可以。

2022-10-15 11:28:51 689

原创 C语言实现通讯录

memset函数作用是将某一块内存中的内容全部设置为指定的值,用零把Max*sizeof(struct PeoInfo)个字节替换。test.c是我们的主函数,contact.c存放函数实现代码。ret是下标,FindByName函数的返回类型是int类型,用来判断要删除的人是否存在。要注意data[ ]里面用的是pc->sz,表示的是第几个数据。要删除一个数据,只要让他后面的数据把他覆盖掉就可以了。好,首先我们先定义两个结构体分别存放人的信息和通讯录。assert函数是断言,防止pc为NULL。

2022-09-27 18:15:57 583

原创 C语言动态内存常见错误

p里面存的是malloc开辟空间的首地址,但对str一点影响都没有,str到最后还是NULL。p指向的位置变了,而是指向了内存的一部分。(起始位置变了之后找不到这一整块空间)如果malloc开辟内存失败返回空指针的话,在解引用就会有问题。*(p+i)每次跳过一个整形。也就是说只能打印到0-9。如果不懂可以画画图,就比较好理解了。编译器规定就是不能对非动态开辟内存进行free。这里开辟的空间是40个字节,不是元素。使用strcpy就会出错。

2022-09-25 18:03:54 81

原创 C语言动态内存分配

有时候我们需要的空间大小在程序运行的时候才能知道, 那数组的编译时开辟空间的方式就不能满足了。与函数 malloc 的区别只在于 calloc 会在返回地址之前把申请的空间的每个字节初始化为全0。我们老话说有借有还,再借不难,free就是把malloc等函数动态开辟的空间还给系统。我们可以看到上述空间的开辟是固定的,数组在声明时必须指定数组的大小。所以如果我们对申请的内存空间的内容要求初始化,那么可以很方便的使用。的元素开辟一块空间,并且把空间的每个字节初始化为。指向的空间不是动态开辟的,那。

2022-09-25 10:51:34 56

原创 C语言—结构体在内存中的存储

如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍处,结构体的整。结构体成员的自身大小和和默认对齐数(vs默认对齐数为8)的较小值,在C语言。结构体总大小为最大对齐数(每个成员变量都有一个对齐数)的整数倍。体大小就是所有最大对齐数(含嵌套结构体的对齐数)的整数倍。其他成员变量要对齐到某个数字(对齐数)的整数倍的地址处。而结构体要对齐就要涉及到一个知识点:偏移量和对齐数。编译器默认的一个对齐数 与 该成员大小的。第一个成员在与结构体变量偏移量为。结构体在内存中存储是有对齐的。

2022-09-19 17:01:09 627

原创 模拟实现memcpy和memmove

1到3的位置,2到4的位置。再往后走的话3和4的位置的指已经发生变化,变成了1,2.就和上图一样最终结果是12121。首先我们看这个函数是不是和strcpy非常相似呢。其实实现起来也是大同小异,我们先来看看C语言对他的介绍。但它相比于memmove还是有一些不足,就是上面的第三条,不能有重叠的。大家想不明白的时候可以多画画图,在电脑上画也可以,笔画也可以弄清楚就行。,则拷贝完源字符串之后,在目标的后边追加。有任何的重叠,复制的结果都是未定义的。就是他自己cpy他自己就不行了。的时候并不会停下来。

2022-09-14 20:41:52 143

原创 C语言实现三子棋

我们首先要有三个文件,一个game.h,用来存放函数声明和头文件。两个.c文件一个运行程序主体,一个存放我们创建的函数。这里代码太长我就不放了,我放一个gitte链接,那里有我的三子棋的全部代码;我们需要输入一个坐标,因为我们是在普通人的视角玩游戏,所以x和y要减去1.只下好棋了可不行,我们还需要判断输赢。创建一个is_win函数来判断。我们要对棋盘进行初始化,让它的每个空内都是空格。我们用的是一个char类型的二维数组来存放棋盘。另外我们还要考虑坐标是否合法,即是否在1~3之间。

2022-08-23 10:49:10 778

原创 数据在内存中的存储

3.浮点型在内存中的存储。## 1.1类型的基本归类。# 2.整型在内存中的存储。## 3.2浮点型存储规则。## 2.2大小端的介绍。@[TOC](目录)# 1.数据类型介绍。

2022-08-11 15:24:23 82

原创 c语言倒置字符串

倒置字符串C语言

2022-08-07 15:55:50 306 1

原创 汉诺塔问题

汉诺塔问题在C语言中一般采用递归法来写,假设有A、B、C三根棒,A棒放着若干个圆盘,将其移动到C棒上,中途可在B棒中暂时放置圆盘。

2021-06-01 21:39:51 131

Test.cpp

Test.cpp

2023-02-01

空空如也

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

TA关注的人

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