自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Linux---​代码运行-程序的翻译过程

我们平常用C/C++语言写代码的时候,运行只是靠编译器,点一下运行按钮就会出现我们代码运行的结果,那我们的代码究竟是怎么得到最终结果的呢?还是非常值得我们去了解与学习的。

2024-06-14 17:31:46 991

原创 Linux---Linux编译器-gcc与g++的使用

GCC是以GPL许可证所发行的,也是的关键部分。GCC的初衷是为专门编写一款,现已被大多数类Unix操作系统(如、MacOS X等)采纳为标准的编译器。

2024-06-09 19:15:21 730 1

原创 动态规划(算法)---01.斐波那契数列模型_第N个泰波那契数

有一个很著名的公式 “程序=数据结构+算法”。

2024-05-23 21:17:45 755 1

原创 Linux---编辑器vim的认识与简单配置

我们在自己的电脑上所用的编译软件,就拿vs2022来说,我们可以在上面写C/C++语言、python、甚至java也可以在上面进行编译,这种既可以用来编辑、运行编译,又可以支持很多种语言的编译器是一种,集众多于一身。而我们在Linux中,我们有自己的,也有自己的各种功能独立,话说回来,当然是集成开发环境要更为方便,但是我们在初步学习Linux时,我们稳扎稳打比较好。

2024-05-15 23:02:47 920

原创 Linux---windows 机器和远端的 Linux 机器如何通过 XShell 传输文件

这个工具用于 windows 机器和远端的 Linux 机器通过 Xshell 传输文件.

2024-05-13 20:25:51 303 2

原创 Linux---在Xshell上配置软件包管理器yum

在Linux下安装软件,. 但是这样太麻烦了, 于是有些人把一些常用的软件, 做成可以理解成windows上的安装程序)放在一个上, 通过包管理器可以很方便的获取到这个, 直接进行安装.. yum是Linux下非常常用的一种包管理器. 主要应用在Fedora, RedHat,等发行版上.

2024-05-12 21:57:18 750 1

原创 Linux---为什么会有粘滞位?

起初,两人交流甚欢,然后在同一个系统中的小李看不下去了,就是不想让他们共享,然后一气之下把他们共享的文件删除了。我们会发现在others的x权限变成了t,我们再用HYL用户再_share目录里创建一个log.txt的文件,再换用户进行删除。某天,小明想和小王在他们共有的系统中进行一些交流,共享一些文件,于是小明在根目录地下创建了一个目录名叫_share,我们在左边创建log.txt文件后,在右边用户进行删除,我们发现,已经没有了权限!为了解决这个问题,让小明和小王能够在共享的同时不被其他人删除文件,

2024-04-27 21:40:07 429

原创 Linux——Xshell连接服务器以及如何创建新用户

首先,Linux是一套免费使用和自由传播的类Unix操作系统,是一个多用户、多任务、支持多线程和多CPU的操作系统。它能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。说的简单点,它就是一个操作系统。

2024-04-26 18:41:40 551 1

原创 C++:类与对象(下)

内部类是一个。

2024-03-28 23:53:13 556

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

在C++编程中,类与对象是重要的概念,学好它们对于编写可维护、可扩展和可重用的代码至关重要。学习类与对象的概念可以帮助我们以面向对象的方式思考问题和设计解决方案。面向对象编程强调数据和功能的相互关联,通过将问题分解成对象和它们之间的相互交互来解决问题。学好类与对象是编写高质量、易于维护和可扩展的C++代码的基础。理解类与对象的概念和使用方式,掌握面向对象编程的思维方式,可以提升代码的设计能力和开发效率。

2024-03-18 21:15:34 635

原创 C++:类与对象---类的六个默认成员函数

如果一个类中什么成员都没有,简称为。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。默认成员函数:用户没有显式实现,编译器会生成的成员函数称为默认成员函数。

2024-02-14 15:14:42 671 1

原创 数据结构--堆排序(超详细!)

堆排序与Top K问题是堆的两大应用,在我们日常也有很广泛的用处我们已经上面已经说过了堆,这次来说堆的其中一个应用---堆排序。

2024-01-30 23:49:26 740 2

原创 数据结构——堆(Heap)功能的实现

什么是堆?简单来说,堆就是一个完全二叉树,在这个完全二叉树中,每一个子树的根节点总是大于它的左右孩子,那就称为大堆,反过来,每一个子树的根节点总是小于它的左右孩子,那就称为小堆。现实中我们通常把堆(一种二叉树)使用顺序结构的数组来存储,需要注意的是这里的堆和操作系统虚拟进程地址空间中的堆是两回事,一个是数据结构,一个是操作系统中管理内存的一块区域分段。

2024-01-10 15:27:10 1153 2

原创 数据结构---栈的认识与实现

要搞清楚这个概念,首先要明白“栈”原来的意思,如此才能把握本质。栈,存储货物或供旅客住宿的地方,可引申为仓库、中转站,所以引入到计算机领域里,就是指数据暂时存储的地方,所以才有进栈、出栈的说法。​在数据结构当中,栈是一种只能在一端进行插入和删除操作的特殊线性表。它按照后进先出的原则存储数据,先进入的数据被压入栈底,最后的数据在栈顶,需要读数据的时候从栈顶开始弹出数据(最后一个数据被第一个读出来)。​

2023-12-25 00:15:00 913 2

原创 Linux-umask(Linux中默认权限掩码)

我们创建一个文件或者目录后,我们都会看到前面会默认给出一定的权限,我们是,为什么还会给我们设置默认的权限?为什么不是我们来设置?

2023-12-10 22:06:53 671 4

原创 Linux-目录的权限

目录也有权限,也有rwx权限,那么rwx权限对目录有什么影响呢?

2023-12-09 23:18:32 232 1

原创 Linux—文件的权限

Winodow系统也是如此,先拿我们熟知的Window系统举例。vs编译软件,在我们桌面上的图标,他只是一个快捷方式,双击它会直接去找到该应用程序的所在位置。我们查看它的属性去查看它的所在位置:我们会发现,其实它就是一个我们在日常用的windows系统中,在电脑上打开软件我们可以选择以管理员身份去运行该软件。Windows 中有两种类型的帐户:标准用户帐户和管理员用户帐户。管理员帐户可以配置系统设置并访问通常受限制的操作系统部分。

2023-12-09 00:35:18 1326

原创 带哨兵位的双向循环链表

带头双向循环链表,是我们学过的链表中结构最复杂的一种,一般用在单独存储数据。实际中使用的链表数据结构,都是带头双向循环链表。虽然他结构最复杂,但是他实现起来却又是很简单。至于怎样简单,请看下文。

2023-12-05 14:41:29 832 1

原创 单链表中头节点带与不带哨兵位的区别(一级指针与二级指针)

大家最开始接触单链表时,大多都是用不带哨兵位的方法实现的。不带哨兵位时我们通常需要用到二级指针去接收所定义的SLNode*phead的地址才能实现自己想要的,那为什么带哨兵位用一级指针就可以呢?我想大家对此或多或少都会有些疑惑,甚至自己也想不通要怎样实现带哨兵位的单链表。我接下来对带哨兵位的单链表进行实现并对上述问题进行讲解。我在这里主要想说的是为什么带哨兵为的单链表可以不用二级指针,其他函数的实现其实都与不带哨兵位的单链表函数实现差别不大。

2023-11-24 23:22:06 1093 2

原创 memcpy函数和memove函数的实现

我只是说想拷贝整型数据可以用memcpy,但并不是说它像strcpy函数只能拷贝字符串一样的单一。我们从memcpy函数的dest和source参数类型是void*时就可以知道,能拷贝的不止整型,所有的类型它都可以拷贝,大大提高了适用范围。参数介绍:destination:指向要在其中复制内容的目标数组的指针,类型转换为 void* 类型的指针。简单来说,就是你想要拷贝到哪里。source:指向要在其中复制内容的目标数组的指针,类型转换为 void* 类型的指针。简单来说,就是你想要拷贝什么。

2023-10-28 10:07:13 148

原创 指针数组与数组指针

那同样的,数组指针是指针?还是数组?答案是指针!我们知道:整型指针:是指向整型数据的指针。浮点型指针:是指向浮点型数据的指针。字符指针:是指向字符数据的指针。由此可知,指针数组应该是能够指向数组的指针。当我们将一个整数存入整型指针中,我们需要将整数的地址传过去。将一个字符存入字符指针中,我们又需要将字符的地址传过去。同理,我们如果想要将数组存入数组指针中,我们就需要将数组的地址传过去。在这里我们复习一下对数组名的理解。我们都知道,数组名是数组首元素的地址。

2023-10-25 19:04:46 40 2

原创 动态内存管理(易懂详解)

C语言中有很多开辟内存的方式C阶段,用的最多的也就是数组。但是,我们每次用数组时只能设定一个固定的值,开辟一个固定的内存大小,就比如在写通讯录的时候,你定义了一个存放100个人的信息的数组,当我们存入人的信息很少时,就会浪费很大的空间,存入人的信息很多时,空间又不够用。而且此时空间开辟的大小又是固定的,不能修改,很不方便。假如我们想要先开辟一块小的内存,之后不够用时再开辟一块更大的内存,不想用时再将这块空间回收。这就既没有了空间的浪费,又可以让存放很多信息时更方便的开辟内存空间。那该怎么解决呢?

2023-10-12 12:23:27 139 12

原创 qsort函数排序

在我们不了解qsort之前,冒泡排序可能是我们最常用的一种排序方法,但是冒泡排序法可用的范围太小了,比如需要排序结构体中的成员时自己动手拓展也会很麻烦。

2023-09-15 23:18:16 82 1

原创 扫雷游戏中递归展开与第一次点击不会是雷

第一次尝试编写扫雷游戏,对于我们小白来说,是对逻辑能力的培养。在创作扫雷游戏的过程中不断创新去优化这个游戏,也是一个自我提升与提高逻辑能力的最有效的方法。

2023-07-27 23:00:53 149 3

原创 辗转相除法求最大公约数(递归函数)

4、这样逐次用后一个数去除前一个余数,直到余数是0为止。最后一个除数就是所求的最大公约数。它的原理是通过不断地用较小的数去除较大的数,直到两个数相等为止(余数为零),这个相等的数就是它们的最大公约数。2、再用第一个余数除小的一个数,得第二个余数;3、又用第二个余数除第一个余数,得第三个余数;这就是用递归方法去求最大公约数,递归不太懂的可以去看我第二篇有关递归知识讲解的博客。,又名欧几里德算法(Euclidean algorithm)乃求两个正整数之。简单来说:1、先用小的一个数除大的一个数,得第一个余数;

2023-07-27 16:08:25 1590 2

原创 三子棋电脑优化

对电脑的优化,无非就是让它长个脑子,有一定的判断能力,想让它“长个脑子”很简单,就像我们判断输赢一样,当电脑发现你差一个棋子就可以赢时,它会来拦截你。可以看出,编写思路与我们编写判断输赢时差不了多少,可以说是对输赢这个结果的一个拦截。对行、列、对角线上即将有三个相同符号组成一条线时做出判断并拦截。上篇博客我们已经进行了三子棋游戏的编写,然而上篇博客中三子棋电脑太笨,从而没有“博弈”之后电脑就可以对你精准的拦截了。所以这篇我们来对电脑进行优化。

2023-07-26 15:56:20 112 6

原创 数组、函数都学了...你不会还不会做三子棋这个小游戏吧

数组学过了对吧?函数学过了对吧?行,那接下来就试试写一个三子棋小游戏.这次就不先搬代码给你们看了,我们先想一下如果你要做一个三子棋游戏,需要对这个游戏如何布局。简单来说,就是欢迎界面与游戏过程,欢迎界面并不难,随随便便一个设计,printf啪一下就打印上了。难的是自身对这个游戏过程的理解,即你设计这个游戏的逻辑。这篇博客的重点也就是对设计这个游戏的逻辑进行重点解释。这里我先把代码初步框架在这里解释一下:1、我们将游戏逻辑代码放入test.c这个源文件中(以下就称其为逻辑代码)

2023-07-25 22:12:33 79 3

原创 初识递归.

程序调用自身的编程技巧称为递归(recursion)。 递归做为一种算法在程序设计语言中广泛应用。 一个过程或函数在其定义或说明中有直接或?间接调用自身的一种方法它通常把一个大型复杂的问题层层转化为一个与原问题相似的规模较小的问题来求解,递归策略只需少量的程序就可描述出解题过程所需要的多次重复计算,大大地减少了程序的代码量。 递归的主要思考方式在于:把大事化小。我先拿一道题来将递归“大事化小”呈现出来: 题目:输入一个四位数,并将这个数的个位、十位、百位、千位按顺序打印出来。下面我不用递归的方法将这道

2023-07-23 20:36:46 59 1

原创 利用数组处理同类型的批量数据

每个元素都有自己的编号,第1~10个元素对应的编号依次是:a[0]、a[1]、a[2]、a[3]、a[4]、a[5]、a[6]、a[7]、a[8]、a[9]、a[10];的是:初值个数不能超过指定的元素个数 如语句“int a[5] ={1,2,3,45} 是错误的另外需要注意的是,在定义数组之后,不能一次性对整个数组的所有元素赋值,而只能对数组的每个元素逐个赋值。即a[3]=0,a[4]=0。这个表示数组a中有三个元素,并给每个元素定义了初值:a[0]=1,a[1]=2,a[3]=3。

2023-06-14 23:06:36 178

三子棋小游戏代码+注释

三子棋小游戏代码+注释

2023-07-25

空空如也

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

TA关注的人

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