自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 多种排序及其思想

多种排序写法

2024-06-04 12:09:41 265 1

原创 队列与栈之间的联系

当我们学栈或者队列的时候,也许有想过我能不能用另一个来实现对方,看似完全相反的性质,实际上确实可以通过某些方式来实现,但是可能看起来很没有意义,不过可以让我们对栈和队列的理解更进一步。

2024-05-13 08:35:35 265 1

原创 关于单链表在使用中产生的常见问题

简单科普一下什么是带环链表,正常的单链表结构是线性的,他的最后一个节点指向的是空,带环则是最后一个节点指向前面的某一个节点,形成一个环形,比较经典的就是约瑟夫问题,它就是一个带环链表,而我们想要判断它是否是带环链表,需要用到我们的快慢指针。

2024-04-30 09:13:44 344 2

原创 贪吃蛇的实现

首先我们的食物它的x得是随机2的倍数,还不能比我们的框架大,其次他不能直接出现在咱蛇肚子里,如果这些条件都满足,那么我们把光标定位到这个地方打印食物,再我们把坐标传到蛇属性的结构体里的食物。而光有蛇是不够的 我们还得设置一下蛇的属性。

2024-04-20 10:40:48 859

原创 编译与链接

一般来说我们写的代码只是一堆字符和数字,计算机和操作系统并不以能直接识别出来,所以有了编译,在ANSI C实现下一般有两种环境,一种叫编译环境,在编译环境中,可执行的源代码会被转化成可执行的机器指令(二进制指令),第二种叫执行环境,用于实际执行代码。编译环境一般依赖于我们的编译器比如VS 而执行环境依赖的是我们的操作系统。

2024-04-20 08:37:37 186

原创 编译和链接

一般来说我们写的代码只是一堆字符和数字,计算机和操作系统并不以能直接识别出来,所以有了编译,在ANSI C实现下一般有两种环境,一种叫编译环境,在编译环境中,可执行的源代码会被转化成可执行的机器指令(二进制指令),第二种叫执行环境,用于实际执行代码。编译环境一般依赖于我们的编译器比如VS 而执行环境依赖的是我们的操作系统。

2024-03-26 10:59:14 268

原创 文件的读写

当我们操作完了之后想要看看它的结束到底是寿终正寝的结束,还是中途出了问题暴毙的结束,这时候我们就需要用到feof和ferror函数了,在讲之前我们又需要了解,在 流 里其实有两个参数,一个就是feof,另一个则是ferror,如果它是正常的结束那么feof的值则会定为正数,不然就是返回负数。同理,我们用ferror判断一下,如果返回的是正数,那代表它确实有问题,不然就代表没问题,返回的是0。

2024-03-26 09:27:54 703

原创 malloc realloc calloc以及free

当我们创建变量时,空间也许会太少也许会太多,造成空间的浪费,这时候我们就可以使用malloc来动态的在堆上开辟空间了,如图所示。此时我们就在堆上开辟了10个整型大小的空间,把首元素的地址存放在ps里。我们再来看看malloc的参数。首先void*表示他的类型可以根据使用者的需求来自定义,需要什么类型就强转它什么类型,size_t size则表示它的长度必须是无符号整型,毕竟不能开辟负数的空间,而开辟的空间大小也由我们自己决定。

2024-03-24 03:36:32 754 1

原创 结构体联合体和枚举吧

需要使用关键字 struct,加上创建类型的类型名 比如s1 然后定义结构体的成员,至少有一个,之后就可以使用结构体类型 struct s1来创建变量了,如struct s1 stu。而结构体的传参有两种方式,第一种就是形参,不改变结构体的内容,比如打印结构体成员的值,只要结构体名.结构体成员即可访问。而另一个则是实参,将结构体的地址传入,以上面创建的结构体为例,只需要加上一个 * 号即可,struct s1* 此时只需要结构体名->结构体成员就可以打印出来。

2024-03-19 08:56:37 599

原创 关于整数和浮点数在数据中的存储

关于整数在数据中的存储比较简单,分为有符号整数和无符号的整数,他们的存储都是转化为二进制存储,而首位是符号位,但是在无符号的整型中他不会被识别为符号位,而是当成正常的二进制位运算就会出现图中所示的情况。我们再顺便提一嘴char类型,因为是一个字节八个比特位,所以会出现整型提升的情况,进而导致他的值可能产生一些变化,比如按理说应该是产生129这个值,但是为什么会变成-127呢首先我们需要知道原反补的区别,其次需要知道当以整型打印字符类型时会产生整型提升和截断。

2024-03-16 13:54:32 288 1

原创 关于str和mem系列的部分讲解

strstr的意思就是查找,在一段内容中查找是否有我们需要的目标,所以我们首先要记录好两个参数的起止位置,因为之后查找将会改变他们的指向,而当两个参数都指向'\0'时就代表查找完了,而如果两个参数相等,则代表我们可以继续往后查找,如果不相等则只有第一个参数往后走一步,当第二个参数等于‘\0’时那就代表我们可以在第一个参数中找到他,那么我们就返回我们找到他的地址star。

2024-03-14 23:35:36 325

原创 关于C语言的指针捏

当你学习C语言一段时间之后亦或者开始学习时,你就听说过指针这个名词,但可能并不了解他到底是什么,听我来给你解释。你是否在使用函数时为无法改变你所传入的变量无法改变而烦恼,这时候只需要使用一下指针,你就可以做到函数内外变化都影响数据。而一级指针的写法也很简单,只需要一颗 * 就行了具体的写法是:原数据类型* 指针名 = &原数据名比如 int a = 10;那么他的一级指针写法就是 int* pa = &a;

2024-03-05 10:03:53 594 1

原创 一个简单的扫雷游戏

以上就是这个扫雷的实现,其实关键点就在于想明白我该怎么定义这个棋盘的大小,需要考虑越界的问题,而埋雷就是生成随机数下标然后把下标的值改掉,再定一个改的上限,来确定随机几雷,只有排雷的部分可能复杂一点,因为需要考虑的问题比较多既要考虑运行的bug还要提防找茬,但主体还是判断输入的值和下标比较,如果输入的值不等于雷的值那就说明我没踩雷,再进入下一个步骤,计算周围的雷数,再把打印出来看的二维数组的下标值改成周围的雷数,方便我们继续猜,最后定义一下胜利条件,扫雷就算完成了。首先我先贴入代码,之后再讲解具体的实现。

2024-01-30 10:00:44 443 1

原创 关于C语言中分支和循环的一点浅显理解

而循环则是在两个区间中重复做一件事情,直到满足他的跳出条件,最常见的就是while和for循环,这两个循环用法大抵相同,但是用起来个人感觉for循环会更方便一点,毕竟while循环如果稍微长一点,其中变量的变化寻找起来会非常麻烦,而for循环就不一样了,它的所有变化基本上都可以在一行内解决,即使是非常长的一串代码,他的变化也可以比较简单的看出来。而在以上循环中,如果一次判断不够,那么还可以加入分支语句,从而更好地执行循环的条件,同时if也可以借助循环的特性减少时间和空间的浪费。

2024-01-24 09:54:39 334 1

空空如也

空空如也

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

TA关注的人

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