自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 类和对象——其中四个默认成员函数

一、构造函数二、析构函数三、拷贝构造函数四、赋值运算符重载在C++中,是有6个默认的成员函数。实现初始化的是构造函数,实现清理的是析构函数,拷贝构造是使用同类对象来初始化创建一个新的对象,而赋值重载是把一个对象赋值给另一个对象,还有两个默认的构造函数时取地址重载,分别是针对于普通对象的取地址和const对象的取地址,由于这两个很少自己实现,因此在本次博客中,对此不做介绍。那么让我们进入正题吧。

2024-05-13 22:08:57 850

原创 数据结构——排序(下)

但是,这只是比较好的情况,如果是最糟糕的情况呢。其不同于前面两种快速排序的方法在于其两个指针的位置不是左右两边,而是一前一后,对于先走的指针,代码中用cur表示,其目的是找到小于key的值,找到了小于key的值后,prev(另一个指针)就会往前走一步,然后进行交换,其中cur的任务是找小,prev的任务是找大,然后进行交换,目的是把小的值往前放置,大的数值往后放置。因为递归是在不断的开空间,如果数量太大,可能会发生栈溢出,因此,就有人相除了利用非递归的方法,就是利用循环和栈来模拟递归?

2024-04-06 13:23:36 690 1

原创 C++入门——基本知识(上)

因为变量,函数还有之后要接触到的类的数量时十分多的,有时候就不得不需要它们是重名的,比如定义一个Swap()函数(交换函数),你需要定义多个,分别是用作交换整型,浮点型的,由于功能相似,就像给他们去相同的名字,于是,就在之前的全局域和局部域的基础上又多增加了一个域——命名空间域,就可以有效的避免命名冲突等问题。这是C++中的输入和输出,>>表示为流提取,和scanf很像,从键盘中提取相应的信息到对应的变量中,<<表示为流插入,和printf很像,就是把相应的内容显示到控制台上。

2024-04-06 13:22:14 290 1

原创 数据结构——排序

这次分享给大家了五种排序方法,希望大家能够有所收获。

2024-03-30 16:01:51 207

原创 贪吃蛇小游戏的代码

Snake.h(头文件)Snake.c(源文件)test.c(测试文件)这里就是全部的代码啦!

2024-01-30 22:13:13 409 1

原创 用C语言来完成贪吃蛇游戏

但是,大家在看这篇文章的时候是要把C语言的基本内容学习完,同时有接触一部分数据结构的知识,比如顺序表,单链表,如果这些只是都已经掌握了,就可以来实践实现贪吃蛇游戏,4那么废话不多说,让我们进入到正题吧!目前,小游戏的基本雏形已经完成了,但是还有一些功能没有实现,就目前来说,实现的功能是吃到食物与没吃到食物,向上,向下,向左,向右还有停止,退出,加速,减速这些功能,还有撞到墙壁,就游戏结束与碰到自己就游戏结束的功能还没有实现(每一次行动后都要判断一下这步行动是否是撞墙,还是撞到自己)。

2024-01-30 21:58:13 965 1

原创 C语言中的编译和链接

2-4 链接 把一堆代码链接在一起,生成可执行文件,前面在预处理等阶段中,文件都是单独执行的,并没有相互链接在一起,但如果在多个源文件中应用到有一个函数,而这个函数的定义是在一个头文件中,为了使得源文件中的代码可以执行,就会把其他源文件中的所用到的这个函数的地址进行修正,把真正的函数地址传递给他们,让他们在使用的时候,是可以找到头文件中的函数的。一开始,各个文件独立的进入到编译器中,先进行预处理,得到后缀为.i的中间文件,接着,进入到编译阶段,得到后缀为.s的中间文件。一:翻译环境与运行环境。

2024-01-16 16:07:58 430 1

原创 C语言中的文件操作

我们程序是需要输出到各种外部设备,也需要从外部中获取数据,而不同的外部设备中的输入与输出操作都各不相同,所以为了操作方便,就提出来了一个抽象的概念——流,而流就像是文字的河流,输入数据需要通过它,而输出数据,也要从流中提取。设想一下,如果没有文件,我们程序的数据就只被存储在电脑内存中,但是,如果一旦退出或是结束程序,内存空间就会回收,存储在里面的内容就无法被保存,当再次打开程序的时候,会发现里面的数据不存在了,所以使用文件可以把数据很好的存储在里面以便下次可以使用。4-3 fscanf和fprintf。

2024-01-16 09:26:25 802 1

原创 动态内存管理

但是上面的代码出了一个问题,也是我们经常忽视的,由于由malloc,calloc和realloc来开辟的空间,是在堆区开辟的,也就是说明其即使是出了作用域,也还是会存在,不会被销毁,除了人为手动销毁,利用free,另一个就是等程序运行结束,但有时候程序不会运行结束呀,而是24小时一直在运行之中,那么这块空间就一直被占用这,最终会导致内存空间不够用等一系列问题,所以在开辟空间与使用完后,一定要记得释放空间,下面是完整的代码。表示要上传原本空间的地址,和重新开辟一段空间后的整个空间的大小。

2023-12-31 15:33:00 1048 1

原创 整形数据的C语言练习

但是,为存放在char类型中,所以其最多只能存储八位,所以,一开始在a ,b ,c 中存放的均为11111111,后面以%d的形式打印,%d就是要求为以十进制的整型形式打印,所以要进行整型提升,对于11111111,char与signed char均为有符号数,提升的时候,就是按照符号数来提升的,所以为111111111111111111111111,由于这个为补码,且符号数为1,要变为原码。这就是第一道题,考察了原码反码补码的转换,整形在内存中的存储方式,还有无符号整型与有符号整型的整型提升。

2023-12-30 09:25:32 994 1

原创 浮点数在内存中的存储

指数位:由于其为一个无符号整型,但有时候,比如但遇到0.5时,二进制的表示形式为2^(-1),那么对于-1,我们知道,无符号整型的-1,是很大的,所以也就无法正确的表示出我们所想要的结果,因此,为了防止此现象的出现,就要在真实值的基础上再加一个中间数,对于8位的E,就加上127,对于11位的E,就加上1023,那么回到此道表达中,则位2+127=129,对应的二进制表达式是10000001。类比整形在数据中的存储,是以二进制的方式来存储数据,浮点数也是如此,但是其空间内存的分配会与整型有很大差别。

2023-12-28 09:18:44 512 1

原创 字符函数与字符串函数以及它们的模拟实现

还是先要了解其实如何工作的,因为其返回的类型是整型,就是0,1,-1,因此在实现时也要分为三类讨论,而判断大小时,一般会先遇到相同的,但是要找不同,所以要先过掉相同的,直到找到了不同的就可以跳出循环来比较这两者的值,此时就可以利用判断语句,如果一直处在循环语句中,直到都遇到了'\0',则表示二者相同。此中返回的是-1,表示的是arr1小于arr2,因为在第二个字符的比较处,b的ascill码值是小于d的ascill码值,所以其会返回-1。

2023-12-22 18:14:46 1011

原创 深度理解指针2——数组指针与指针数组

对于*(arr+i)表示的为第i行,而*((arr+i)+j)表示的就为第i行第j列元素,传参时,应写成int(*arr)[j],此处举例的为整型数组指针,int表示数组中的元素为整型,而(*arr)表示为首元素地址,[j],表示这个数组指针内部有j个元素。这一部分中 int arr[],其看似接受的是整个数组,但实际上接受的只为首元素地址,因此函数中的arr[]数组中就只有一个元素,在x86环境下,内存空间大小是4byte,整型的大小也为4,所以相除结果为1。首先,来看一下二维数组的构造。

2023-12-12 15:54:06 430

原创 深入学习指针1

1-1:简单来说,我们的内存是可以被切分成一个个内存单元的,对于计算机为32位的,其每个内存单元的大小是四个字节,也就是八个比特位,而目前经常使用的是62位,对应的每个内存单元就是八个字节,可以存取的数据更加多了。举个生活中的例子,我们居住的房间或是公寓其都有自己的门牌号,但你有朋友来找你的时候,你可以把自己的门牌号告诉他,他就可以很高效的找到你,同理,在内存中,也是如此,但你想要访问一个特定内存的内容时,你可以通过它的内存编号来找到它,而这个内存编号又被称为地址,地址其实就是指针。编译器是不会报错的。

2023-12-10 23:00:05 929 1

原创 新手小白尝试——扫雷游戏(C语言)

第二个问题:由于我们要实现的一个功能是其在未踩到雷的那个坐标的附近有多少个雷是要被预测与告知出来的,如果我所判断的那个3*3的区域内,其刚好就只有一个雷点,那么就会和表示是雷点的1,产生影响,可能会导致计算机误读,那么,为了防止此类影响,我们可以把它分为两个数组,分别来实现不同的功能,一个为扫雷的数组,即里面布置好雷点,另一个为找雷点的数组,用来看是否踩到雷点与计算此坐标附近有多少个雷电。初始化模型后,我是要展现出来的,且之后也要用到很多个打印展现,因此,此处要构建一个打印模型。3.构建好的game函数。

2023-11-03 19:14:44 41

原创 C语言中函数的学习

对于库函数,就是平常我们打代码会经常用到,其内部的运行模式和作用也都被定好了,而我们要使用时,就直接再开头写下#include<>,也就是包含此函数的头文件,之后就可以使用。(此中要注意的两点为:1.对于其最小值,要求是要大于0,所以对于如果输入的数是小于0的,是不可以对其输出 2.其有最大值的限制,就限制了其可以循环的此数)形参:形式中大的参数,形式上的存在,只有在函数被调用时,其才会临时向内存申请空间,来拷贝实际参数传过来的值,例如例二中的x与y。scanf()--<stdio.h>--输入函数。

2023-11-02 14:53:53 104

原创 大约学习了20天左右C语言后的感想与进度分享

目前,已经学习到C语言的初阶阶段的循环语句了,开始感觉到难度提升了,对于练习题的结出速度与效率都下降了很多,比如输出n 的阶乘,再一步提升就是算出n的阶乘的和,而在思考这个问题的时候,我是有想到要用到循环语句来实现他的一次次累乘,但我没有注意到的是,其实有范围的,即你需要输入一个值,来限定或是说明他的阶乘到哪一步,而之后为求和,及相较于阶乘多了一步,在于其在每次循环过程中,不止是要乘上上一个数,同时也要把上一个数加起来,来实现累加。

2023-10-20 22:53:58 37

原创 第一篇博客——我的编程学习

首先,我要列出自己的目标,分为一个个短期目标与长期目标。由于目前的学习阶段还只是在初识C语言中,所以接下来的目标是利用好自己手头上的学习资源,每天打卡学习任务,争取在下学期前把C语言学完,学好,学会用。2.学习编程,就相当于是在学一门新的语言,一门新语言的学习,离不开反复的 记忆与实践,而要记得牢,就要去理解,要想打的好,就要在实践操作中反复试错与修正。1.在利用网课学习知识时,一定要一步一步跟着来,不好高骛远,不急于求成,明白很多技能的提升是难以速成的,抱着稳与踏实的心态,认真学习。

2023-10-12 09:23:50 19

空空如也

空空如也

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

TA关注的人

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