自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 删除排序数组中的重复项(顺序表刷题1)

我们需要知道,非递减数列删除重复项的本质是:把不相等的元素往前移动,相等的值直接跳过。非严格递增,并不是递减哦,本质是指这个数列并非后面的元素都比前面的数据大。有序数组中有很多重复项,要求删除重复的项,并返回数组的长度。跟非递减是等价的,也就是并非前面的数都比后面一个数大。不需要考虑数组中超出新长度后面的元素。不需要考虑数组中超出新长度后面的元素。,返回删除后数组的新长度。删除重复出现的元素,使每个元素。

2023-12-04 00:41:06 143 15

原创 合并两个有序数组(leetcode_刷题1)

如果nums2[0]

2023-12-03 23:29:56 168

原创 动态内存函数经典笔试题(试题篇2)

而此时str从Getmory获取回来的返回值还是p的这个地址,当一个地址传递给printf(str)的时候,那么当printf(str)进行解引用的时候,就是对p的非法访问,就会出现程序崩溃。显然方法是有的:只要我们将地址传递过去就可以了,因为在计算机分配好的空间后,地址的固定的,因此地址指向的元素数据也是不变的,因此我们需要传递地址,而需要传递地址就需要使用指针的方法。//*p通过解引用,取出str的地址,也就是相当于str,并通过malloc开辟指向str起始地址的空间。

2023-11-23 12:11:55 62

原创 动态内存函数经典笔试题(试题篇1)

广而告知: 博客写得好,Emoji要选好!!写博客是知识是巩固和温习,所以在这个信息爆炸的时代,每个人每天都要接收很多讯息,你的记忆是有限的,知识也是有限的,时间也是有限的,既然如此,那是时候磨亮我的五十米大刀了。你很强,上天揽月你不行,你很强,下海捞鱼总行吧!💀☠💩🤡👹👺👻👽👾🤖 -->渴望知识!!!

2023-11-22 11:30:09 43

原创 动态内存管理的常见错误分析

malloccallocrealloc在开辟/调整空间失败的时候,程序没有返回空指针,那么如果需要对其进行jie。

2023-11-19 23:24:00 24

原创 malloc&calloc &realloc函数动态内存管理

情况2:在原有内存空间的后面空间不够,调整内存空间,将会在其他堆上找到一块足够存放扩容之后的会将原来内存空间的元素复制到新的空间,并将原来旧的空间销毁掉。4)malloc返回的类型是void *,所以malloc函数并不知道开辟的空间是什么类型,需要程序员在使用的时候进行定义。可以看得出来,前面5个字节是我们对p指向的前5个元素进行了赋值,而后面5个元素是没有赋值的,所以出现的值是随机值。假设申请10个存放int型的空间,那就是(10,int),一个整型是4个字节,也就是10*4=40个字节内存空间。

2023-11-19 22:49:26 102

原创 二分查找(时间复杂度2)

二分查找定义:(Binary-Search)二分查找又叫做折半查找,最大三大优点:比较次数少,查找速度块,占用内存少。并且二分查找,被称之为运算最快的查找方式。但是二分查找的缺点也是很明显:数据必须有序,并且插入删除困难。普及一下:时间复杂度其实等效于while(N--),当N=0的时候while不为真就退出时执行的次数是N次,那个时间复杂度就是O(N);那么我们来计算一下在N个数里面查找需要多少次:那么最坏情况是查找了多少次呢?也就是除了2的次数。假设查找次数是X次N=2^X。

2023-11-04 22:17:06 98 3

原创 memset函数内存管理

函数功能:将指针变量s所指向的前n个字节的内存单元用一个整数c替换,注意c是int型,s是指针void*型的指针变量,所以它可以为任何类型的数据进行初始化。

2023-10-27 11:54:12 135 6

原创 对输入字符串进行逆序输出,使用指针操作(指针篇百题3)

那么我们需要使用指针找到存放字符数组的每一个地址,并且指针可以指向任意一个地址,并且对指针指向的地址进行解引用,取出地址中存放的数据。并且使用while(start

2023-10-27 10:30:12 1874 3

原创 实现一个函数,可以左旋字符串中的K个字符(指针百题2)

既然我们需要修改str[]="ABCD"的排序,那么只有一个存放字符的数组str[]是不够的,那么我们在定义一个字符数组my_str[]来存放数组str[]的字符串。在分析1中我们实现了将数组str[]内的字符串存储到新定义的my_str[]数组内。那么现在,我们需要实现的将是在字符左旋的时候,如何实现字符的交换。通过算法我们可以将已存储到my_str[]字符利用起来。//实现一个函数,可以左旋字符串中的k个字符。//ABCD左旋三个字符得到的是DABC。//ABCD左旋一个字符得到BCDA。

2023-10-26 20:21:10 65 3

原创 贪吃蛇游戏(讲解part1)

设置指定控制台屏幕缓冲器中的光标位置,我们将想要设置的坐标信息放在COORD类型的pos中,调用SetConsoleCursorPosition函数将光标位置设置到指定的位置。但是这里还有个问题,如果每次想要在不同的位置打印字符,那每一次都要对这个COORD pos={10,20}的坐标进行设置,设置到指定的位置上,这样好像很麻烦。COORD是Windows API中定义的一个结构体,表示一个字符在控制台屏幕缓冲区上的坐标,坐标系(0,0)的原点缓冲区的顶部左侧单元格。//当光标不可见是设置为false;

2023-10-22 23:19:04 147 4

原创 轮转数组(数据结构练习题1)

4)第三次轮转,reserve(nums,k,numsSize-1),将数组内numsSize-k-1个数进行轮转交换。3)将原数组nums内指向nums[k]之后的数据从arr1取出来,并存储到nums里面,从而完成数组内数据的交换。2)第一次轮转,reserve(nums,0,numsSize-1),将所有的数据进行交换。3)第二次轮转,reserve(nums,0,k-1),再次轮转需要交换的0~K-1个数。2)以下这个代码是将需要跳转的后几位数numsize-K的数组存到原来的数组nums内。

2023-10-22 15:21:37 70 7

原创 时间复杂度(数据结构1)

由于所要找的数字是在0~N之间,那么通过数学关系我们知道,0~N之间的数字之和等于N(N-1)/2 ,想要找到这个区间消失的数字,只需要通过区间数字之和然后减去其他已经出现的数字,那么得到的数字就是消失的那个数字。大家可以看一下输入不同的N值,然后输出的结果,是不是满足F(N)=N*N+2*N+10。在实际中一般情况关注的是算法的最坏运行情况,所以数组中搜索时间复杂度是O(N)当N是极限大的时候,这个10是可以忽略的,所以时间复杂度就是O(N)如果M~=n(约等于)复杂度就是O(M)或O(N)

2023-10-21 20:59:28 61 6

原创 一维数组使用指针访问的理解(指针四)

test(int *arr) ,由于属于函数操作数组,那么由于数组名是数组首元素的地址,那么在数组传参的时候,传递的就算数组名,也就是说本质上,传递的的是数组首元素的地址。这里为什么输出的指针地址都一样,那刚才不是说&arr取出的是整个数组地址,那为啥跟&arr[0]第一个元素的地址一样呢?&arr+1 是跳过一整个数组,由于arr[]数组内有5个元素,5个元素占内存20个字节,换成16进制就算0x14。正是因为函数的参数的本质是指针,所以在函数内部是没有办法求数组的元素个数的。arr 是代表首元素地址。

2023-10-18 02:27:48 40 2

原创 关于野指针(指针三)

含义:assert.h 头文件内定义了assert(),用于程序运行的时候,确保特定指针或者地址满足非NULL的条件,如果不满足,则终止程序的运行。assert(p!= NULL);//该语句代表:如果P为非空,程序继续执行,否则,终止程序。断言的好处很多!大家在编程中好好享用吧!💁‍♂️💁‍♀️🙋🙋‍♂️🙋‍♀️🧏🧏‍♂️一赞三连🧏‍♀️🙇🙇‍♂️🙇‍♀️🤦🤦‍♂️🤦‍♀️🤷🤷‍♂️🤷‍♀️。

2023-10-18 00:42:27 46 2

原创 如何使用指针交换函数中两个变量的值(指针篇百题1)

主要是以下两点原因:1)因为使用外部交换函数的时候,需要传递变量的地址,并通过指针直接对地址中存放的值进行修改。2)形参是实参的临时拷贝,如果传递的只是变量的数值和不是地址,那么当交换函数执行结束后,临时分配的地址也会释放销毁掉。我们分析一下代码:int c=*b;//将b的值进行解引用之后赋值给c*b = *a;//将指针a指向的地址存放的变量的值赋值给指针b指向的的地址存放的变量。*a=c;

2023-10-16 11:57:19 635 1

原创 const修饰指针变量(指针二)

那么如果,你不想这个变量被修改,那么可以在这个变量前面加上const,就无法修改这个变量的值了。b = 20;return 0;当我们将b使用const进行修饰之后,在编译的时候会出现无法编译通过,这就是const的作用。

2023-10-09 20:06:37 51 1

原创 指针内存和地址(指针一)

定义一个指针变量//ptr的类型是int * ,*是在说明ptr是指针变量,ptr指向的对象是int类型这个ptr就叫做指针变量,用来存放指针的变量就叫做指针变量。通俗一点理解:存放在指针变量中的值都会被认为是地址。int * 写在ptr的左边,*说明ptr是指针变量,而int则是说明ptr指向的 整型(int)类型的对象拓展char * ptr,*说明ptr是指针变量,而char则是说明ptr指向的 字符型(char)类型的对象int main()int a = 10;

2023-10-09 11:34:57 231 1

原创 如何用C语言实现扫雷游戏代码(保姆级别讲解,与你共勉)

然后对数组mine和display进行初始化//'0'//'*'初始化数组之后,那我们应该怎么样才能将字符’0‘和’*‘存储到棋盘中这个时候,我们就想到我们需要定义一个函数来将mine数组和display数组进行初始化,给每一个行列上代表的坐标存储一个数值,如下图是使用函数进行存储的字符。要存储两种字符,我们只需要用一个函数就可以实现因此,我们是怎么只使用一个函数来进行初始化实现呢?int i = 0;for (i = 0;i < rows;

2023-10-08 13:12:43 248 1

原创 static跟extern关键字详细解析

写博客是知识是巩固和温习,所以在这个信息爆炸的时代,每个人每天都要接收很多讯息,你的记忆是有限的,知识也是有限的,时间也是有限的,既然如此,那是时候磨亮我的五十米大刀了。你很强,上天揽月你不行,你很强,下海捞鱼总行吧!💀☠💩🤡👹👺👻👽👾🤖 -->渴望知识!!!

2023-08-10 21:16:14 49 2

原创 作用域和生命周期

写博客是知识是巩固和温习,所以在这个信息爆炸的时代,每个人每天都要接收很多讯息,你的记忆是有限的,知识也是有限的,时间也是有限的,既然如此,那是时候磨亮我的五十米大刀了。你很强,上天揽月你不行,你很强,下海捞鱼总行吧!💀☠💩🤡👹👺👻👽👾🤖 -->渴望知识!!!

2023-08-10 14:29:28 42 1

原创 函数类型和参数传递

1.函数类型和参数传递2.嵌套调用和链式访问。

2023-08-09 23:58:08 34

原创 VS2022安装教程,手把手教学

大家复制下载就会弹窗:VisualStudioSetup.exe 存放根据电脑空间,D盘或者C盘都可以。

2023-08-08 20:25:56 552 1

原创 如何将一个正整数逆序输出,以及break和continue语句在while循环钟的使用

写博客是知识是巩固和温习,所以在这个信息爆炸的时代,每个人每天都要接收很多讯息,你的记忆是有限的,知识也是有限的,时间也是有限的,既然如此,那是时候磨亮我的五十米大刀了。1)Continue语句是跳过后面的语句,回到再次判断while(i

2023-08-08 14:42:23 526

原创 随机猜数字游戏(0~100)

写博客是知识是巩固和温习,所以在这个信息爆炸的时代,每个人每天都要接收很多讯息,你的记忆是有限的,知识也是有限的,时间也是有限的,既然如此,那是时候磨亮我的五十米大刀了。原来rand()函数生成的随机数是伪随机数的,并不是真正的随机数,是通过某种算法生成的特定的随机数,是可预测的。玩家猜数字,猜数字 过程中,根据猜测数据的大小给出大了或者小了的反馈,直到猜对数据,游戏结束!那么,是怎么生成随机种子seed呢,我们刚好可以借助的是电脑的时间,因为时间是一直在变化的。

2023-08-06 19:21:30 535

原创 我的第一个C语言程序?

%d输出10进数的几种用法:%d,输出数据的实际长度。%md,m指定输出数据宽度。 遵循右对齐输出规则:如果数据位数小于m,则左端补上空格;若大于m,则按照实际位数输出。%-md,m指定输出数据宽度。 遵循左对齐输出规则:如果数据的位数小于m,则右端补上空格 ;若大于m,则按照实际位数输出。

2023-08-05 14:41:11 72

原创 C语言的学习,我不想一笔带过

至于为什么要学习C语言,是因为自己以前一直散兵游勇,没有很系统的进行学习,因此自己编程能力也是一般般,所以我决定打开自己,借助博客这样的地方,约束自己,同时也鞭策自己,在C语言上学习能够有所精进。写于20230720。第一句:学习C语言上机编程的时候,先思考一下,程序结构是什么样子,它应该怎么实现?第二句:学习C语言,是一个循序渐进,一口吃不下一个胖子,但是也别太佛系,要逼一逼自己,让一些不可能成为可能。-->对于编程这一块,我还真没有特别好的学习方法,所以这里也不敢过分搬石头砸自己的脚。

2023-07-20 22:03:09 95 1

PCB压合叠层结构厚度解析

PCB压合结构厚度解析_20200923 Desigh by Suwin 钟 1.了解基本换算 1oz厚度=1.4mil * 0.0254=0.035mm /1000 = 35um 1mil = 0.0254mm 1mm = 1000um 2.了解常用PP规格 PP :Homopoly 聚丙烯均聚物 常用的PP型号 厚度(mil) 1080 2.5~3.2 2116 4.4~5.0 7628 7.0~8.5

2020-09-23

空空如也

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

TA关注的人

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