自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 JDK8、JDK11、JDK17和JDK21这几个版本更新的主要特性

引入了虚拟线程(Virtual Threads)的概念,这是一种轻量级的线程实现,能够显著减少高并发应用程序的编写、维护和观察的工作量。支持动态类文件常量,可以在不加载类的情况下,将常量加入到已有的类定义中,提供了更灵活的运行时操作。在内存管理和垃圾收集方面进行了优化,提供了更高效的序列集合和分代ZGC,提升了应用程序的性能。表达式的功能,新增了类型模式匹配和守卫模式,使得Switch语句的使用更加灵活和强大。提供了一套声明式处理数据的方式,使得对集合和数组的操作更加直观和高效。

2024-04-18 12:30:43 1877 18

原创 C语言-详解内存函数

好,讲了这么多,让我们来回顾今天讲了什么吧~函数memcpy主要功能是从起始位置src复制nums个字节的数据到dest指向的内存位置。但是这个函数遇到'\0'的时候,并不会停下来的。如图:这里我们是把arr2数组中的10字节的元素用memcpy函数拷到arr数组中,那从这个运行结果,我们可以看出这个arr数组已经是越界访问了。因此使用这个memcpy函数要小心一点才行。如果起始地址src和目标地址dest有任何的重叠,复制的结果都是未定义的。memmove函数和memcpy。

2024-04-13 23:55:18 2010 79

原创 C语言——详解字符函数和字符串函数(二)

strcmp具体的函数介绍如下图所示:如果第一个字符串PTR1大于PTR2的值,返回的是一个大于0的数。如果第一个字符串PTR1等于PTR2的值,返回的是一个等于0的数。如果第一个字符串PTR1小于PTR2的值,返回的是一个小于0的数。strncpy相信同学们看了这个官网对strncpy函数的介绍,自己是能够理解的。那接下来博主教一下你如何使用strncpy这个函数对字符进行拷贝把~strncat相信同学们看了这个函数官网介绍以及那个例子,自己是应该能够看懂这个函数的用法~

2024-04-07 12:08:39 1155 64

原创 C语言——详解字符函数和字符串函数(一)

众所周知,C语言中提供了一系列的字符函数,这些字符函数专门做字符分类的。这些函数就是判断这个字符是属于什么类型的字符的。这些字符函数都需要包含头文件。islower如下两图所示:从这两幅图,我们可以看出islower是判断它的函数参数部分的c是否为小写字母的。我们可以通过返回值来说明是否是小写字母,如果是小写字母就返回非0的整数,如果不是小写字母,则返回0。strcat函数是C语言中的一个字符串拼接函数,它的功能是在一个字符串后面追加上另外一个字符串。

2024-03-14 21:43:25 2238 74

原创 从0到1实现五子棋游戏!!

又称连珠、连五子、五目、五珠等,是一种两人对弈的棋类游戏。它使用一个棋盘,通常是15×15的方格,并使用黑白两种颜色的棋子。游戏的目标是先在棋盘上形成连续的五个自己颜色的棋子,可以是横、竖、斜线方向的连线。与围棋类似,五子棋也是一种战略性的游戏,需要玩家在防守对手的同时,寻找机会形成自己的连珠。由于规则简单,易于上手,五子棋在全球范围内都有广泛的普及和流行。在我们初始化棋盘之前,我们要先在game.h头文件先对行和列进行宏变量操作,这是因为后续如果我们要改变棋盘的行数和列数,直接在头文件这里修改宏变量。

2024-02-28 23:37:21 1894 84

原创 C语言-二维数组&&指针笔试题讲解(2)-干货满满!!!

二维数组中的每个元素都是连续存放的。好了,当我们介绍了这些前置知识后,那我们就开始讲解一下二位数组和指针相关的笔试题吧~这里我们通过讲解二维数组和指针相关笔试题,请1.sizeof(数组名),这里的数组名表示整个数组,计算的是整个数组的大小。2.&数组名,这里的数组名表示整个数组,取出的是整个数组的地址,它的类型是一个数组指针类型。3.除了上面两个例子外,其余的数组名都表示数组首元素的地址。好了,现在博主已经把所有指针的笔试题讲完了。👇👇让我们再次回顾这次博客讲了什么吧。1.二维数组中的。

2023-12-27 23:33:23 3918 74

原创 C语言-数组&&指针笔试题讲解(1)-干货满满!!!

sizeof只关注内存存放空间的大小,不在乎内存中存放的数据。

2023-12-19 02:21:50 1871 59

原创 C语言-指针讲解(4)

根据上图的介绍,我们不难看出qsort第一个参数的意思是base指向待排序的第一个元素。但是为什么它前面的类型是void*呢?很多同学可能对此不理解。下面我来重点介绍一下为什么是前面的类型是void *?比方说:我这里要定义了一个a的变量,而如果说我用char* 的指针变量来接收a的地址,显然是不合理的,因为vs弹出警告说:int * 到 char * 的类型不兼容。反倒void* 是一个通用的指针类型。它可以接受任意数据类型的地址。因此前面的指针类型我们是可以写成void*的。

2023-12-01 09:43:41 1388 43

原创 C语言-指针讲解(3)

数组指针,顾名思义它就是一种指针,里面存放的是数组的地址。函数指针变量是用来存放函数地址,未来通过地址来调用函数的。那么函数是否有地址呢?输出结果如下:我们可以看到vs编译器确实打印出来了地址。函数是有地址的。函数名就是函数的地址可以通过&函数名的方式获得函数的地址。但如果我们要把函数的地址存放起来,那应该怎么做呢?我们应该创建函数指针变量来存放函数的地址。其实函数指针变量的写法其实和数组指针非常类似。return x+y;

2023-11-25 01:18:40 2648 42

原创 C语言-指针讲解(2)

野指针,顾名思义,就是指针指向的位置是不可知的。就好比如没有主人的流浪狗一样。assert.h头文件定义了assert(),它是用于在运行时确保程序符合指定条件,如果不符合,就报错终止运行,这个宏尝尝被称为“断言”。传址调用,顾名思义就是将main函数中的变量地址传到所调用的函数中,然后在被调函数中,通过地址间的操作即可实现两个数的交换。二级指针指向的是一级指针的指针,也就是说一个指针指向的是另外的指针,同时二级指针也是存放一级指针的地址,则称之为二级指针。俗话说,存放整型的数组是整形数组。

2023-11-01 10:49:19 1416 31

原创 字符串左旋详解(超详细)~

比如我们给大家看一下main函数的代码是怎么进行调用函数LeftRotateString的。

2023-10-12 09:28:12 1138 34

原创 C语言指针详解(一)超详细~

在讲内存和地址之前,我们想有个生活中的案例:假设有一栋宿舍楼,把你放在楼里,楼上有100个房间,但是房间没有编号,你的一个朋友来找你玩,如果想找到你,就得挨个房子去找,这样效率很低,但是我们如果根据楼层和楼层的房间的情况,给每个房间编上号,如:有了房间号,如果你的朋友得到房间号,就可以快速的找房间,找到你。生活中,每个房间有了房间号,就能提高效率,能快速的找到房间。如果把上面的例子对照到计算中,又是怎么样呢?其实也是把内存划分为一个个的内存单元,每个内存单元的大小取1个字节。计算机中常见的单位(补充):一

2023-10-05 20:17:02 289 19

原创 C语言的操作符讲解(下)~

即使有了操作符的优先级和结核性,我们写出的表达式依然会有可能不能通过操作符的属性确定唯一的计算路径,那这个表达式就是存在风险的,因此大家建议不要写出特别复杂的表达式。好啦!今天的分享就到次结束了,如果觉得博主讲得不错的话,欢迎大家一键三连支持一下!!!

2023-09-05 23:35:02 749 16

原创 C语言的操作符详解(上)超详细~

在生活中,我们经常能听到2进制,8进制,16进制的这样的讲法,那它们分别是什么意思呢?其实2进制,8进制,16进制只是数值的不同表现形式而已。我们重点介绍一下二进制:10进制中满10进110进制的数字每一位都是0~9的数字组成其实二进制也是一样的2进制中满2进12进制的数字每一位都是0~1的数字组成那么1101就是二进制的数字了。

2023-08-31 21:52:35 699 13

原创 C语言函数递归例题讲解(超详细~)

由图中我们可以看出,当用户输入1729的值后,函数将层层递推下去,直到n的值少于10,也就是DigitSum(1)时,返回的值为1,接着又向上层层回归上去,并且把该层。由图我们可以看出,当我们要求Fun(2)的值时,程序会先进入到else的那层分支语句里面,然后逐层递推下去,直到n==5时,返回2,也就是。的终止条件是什么呢,细心的话,我们可以发现当k=1时, 3^1=3,则返回的是n它本身的值,也就是。返回的是3,然后再逐层往上回归,直到我们把Pow(3,4)的值求出来,那么递归才结束。

2023-08-22 15:23:49 579 10

原创 C语言函数递归讲解~

由图我们得知,当用户输入1234时,进入Print函数内部,会层层递推下去,直到递推到Print(1),1<=9,则打印出1出来,接着用层层回归上去,直到把1234的每一位都打印出来,递归就结束,然后就会返回到main函数内部,继续执行接下来的语句。但是当我们n输入为50的时候,需要花很长时间才能算出结果,这个计算所花费的时间,是我们很难接受的,这也说明递归的写法是非常低效的,这是为什么呢?

2023-08-21 21:42:13 1010 13

原创 扫雷游戏增强版代码实现和详解(超详细~)

扫雷游戏增强版代码实现和详解(超详细~)使用控制台实现经典的扫雷游戏游戏可以通过菜单实现继续玩或者退出游戏可以选择游戏难度。简单9*9棋盘,10个雷。中等16*16棋盘,40个雷。困难30*30棋盘,99个雷可以排查雷。如果位置不是雷,就显示周围有几个雷。如果位置是雷,就炸死游戏结束。把除(10,40,99)个雷之外的所有雷都找出来,那么排雷成功,游戏结束扫雷过程中,布置的雷和拍出的雷都需要存储。因此我们需要一定的数据结构来存储这些信息。举个例子,我们需要在9x9布置雷的信息和排查雷,我们首先想到的是创建一

2023-08-12 20:58:15 493 13

原创 打印字符菱形题目详解(小白都能看懂哦~)

的方式输入字符,具体**%c****的用法可以看下图,那么这道题我们既能通过直接输出打印字符来做这题,也可以通过嵌套循环解这道题,在这里博主分享的是如何用循环来解这道题。示例一**可以准确观察出第一行#为一个,接下来每行#都会递增两个,我们可以把它理解成一个递增的数列,然后循环条件可以写成。首先呢,它让你用字符填充对角线长5个字符,倾斜放置的菱形,并且输入时char类型的字符,那我们可以输入的时候可以使用。的形式,这样就能把空格数打印出来,当我们打印了空格,我们就要打印字符**#

2023-08-06 14:46:44 409 3

原创 C语言if语句详解

上面的代码排版,让else和第一个if语句对齐,让我们误以为else是跟第一个if匹配的,当if语句不成立的时候,自然想到的是执行else语句,打印haha但实际上else是跟第二个if进行匹配的,这样后面的if…else语句都是嵌套在第一个if语句上面,如果第一个if语句不执行,那么嵌套的if和else语句也执行不了,这样就啥都不打印了。ok~以上就是嵌套if语句的语法,有了嵌套语句,我们就可以完成更多复杂逻辑的判断。,也就是表达式的结果如果是0,则语句不执行,表达式的结果如果不是0,则语句执行。

2023-07-29 11:55:30 9332 2

猜数字游戏源码(超详细~)

猜数字游戏源码(超详细~),非常适合新手小白上手

2023-08-22

空空如也

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

TA关注的人

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