自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 栈和队列的实现

而且realloc函数的功能大家可以去Cplusplus网站查询,我这里就简单介绍一下这个函数,这个函数的功能是开辟一块空间,但是有两种情况,原地扩容和异地扩容,也就是说,如果在扩容之前检查一下后面的空间是足够的情况下,那么我们就直接不用移动了,直接在后面扩容就行了(地址是连续的,空间也是连续的),但是如果后面的空间不够的情况下,那么realloc函数会自动去另一块足够的空间开辟新的空间供我们使用,原来的数据都是不变的。销毁队列,我们需要遍历队列,把所以的节点都给释放掉,之后置空就行了。

2024-04-27 23:07:07 522

原创 链表的相关操作(双向带头循环链表)

接下来我继续给大家介绍链表的相关知识,双向循环链表的增删查改……等等的操作,因为这个链表在实际的操作中很实用,而且OJ题也有很多,所以我给大家介绍的是这样一种链表。这里我也是先给出一个结构体,然后解释,prev指针存的是上一个节点的地址,next指针存的是下一个指针的地址。和单链表大同小异的,只不过带头循环之后操作会发生变化而已(有哪里不清楚的可以在评论区里留言,我看到会解释的):。

2024-04-13 20:59:05 403 1

原创 链表的增删查改等操作(关于数据结构的链表)

c语言数据结构

2024-04-13 20:33:16 401 1

原创 结构体的相关知识

答案是会的,因为刚好对齐数是8,但是为什么结构体大小是12呢?我先说一个点,结构体对齐,顾名思义,按照对齐数对齐,而对齐数取决于编译器(你也能自己设置对齐数,等会儿讲)VS2022的对齐数是8,我们知道,char类型是占一个字节,而且一开始也只能放在第一个,d也跟着c一起存放,但是到int类型就不行了,因为对齐数是8,而且,int类型大小为4个字节,如果嵌套了结构体的情况,嵌套的结构体对齐到自己的最大对齐数的整数倍,结构体的整体大小就是所有最大对齐数的整数倍(含嵌套结构体的对齐数)

2024-04-08 19:57:15 529

原创 顺序表的实现和操作

我们看到,如果要在下标为2的元素(也就是3)的地方插入数据的话,那么我们需要把3、4、5往后挪动,而且只能先挪动5,不能挪动3,如果先把3挪动了的话4被覆盖了,那么后面都是3了,所以只能先挪动5,而且pos>=0&&possize,因为当pos等于ps->size的情况下,那么不就是变成了尾插了吗,所以在这里完全可以等于,判断条件就是end>=pos如果pos可以大于end的话那么一切都不对了。好了我们继续,接下来介绍一下另一个函数:头插函数。

2024-03-31 16:27:37 658 1

原创 动态通讯录的实现(接上文)

ok,这就是我动态实现通讯录的过程,其实大部分的代码是一样的,只不过多了几个函数和关于动态申请内存空间库函数的使用,如果有解释不对的地方或者有错误的地方,敬请指正!最后我考虑到刚刚没有解释这个新的结构体的参数,就是这个capacity相当于一个动态申请的开头,我们初始化的时候可以给值,用它来做标记申请新的空间,这样子方便管理。可以看到,当我们存储3个人的信息之后,它会自动给我们申请更多的空间来存储更多人的信息,这样子可以更方便管理,不知道讲到这里大家理解了没有。我也只能解释这么多了,

2024-03-30 16:06:05 268

原创 静态通讯录(后面会用动态的方式重新讲解一遍)

首先还是大家熟悉的do while结构和switch语句,我们在进行大型代码的编写的时候,其实最好要把它分成模块来进行,这里一共三个模块,Contact.h模块,这个模块主要是写一些函数的声明和定义宏,大家也可以看见,我把很多头文件都放到了这个模块中,这也就意味着当我需要使用这些函数还有这些宏的时候,我直接包含这个头文件就可以了例如在Contact.c模块中包含#include"Contact.h"还有在test.c模块中包含#include"Contact.h",一个道理。这就是分模块的意义。

2024-03-27 14:47:13 932 1

原创 一些库函数的模拟实现

这里我们可以看到这个代码的实现是非常巧妙的,特别是*dest++=*src++,因为++的优先级高,所以先执行++,但是这是后置++,先使用再++,是不是很巧秒,如果不这样做,那么就会多写几行代码。ok,这里就是七个库函数的模拟实现,你面试的时候,考官可能会考哦,所以还是自己去实践一下,而且一定要多复习,人都是会健忘的,但是你只要一直复习,那么它依旧可以扎根在你脑中……这里我们可以看到这个函数已经模拟实现成功了,大家可以下去试一试,用用其他的例子,看能不能满足,如果出错的话,记得提醒我哦!

2024-03-25 23:22:05 254 1

原创 部分指针操作及详解

接着str3和str4两个指针都是开辟出来的,所以系统自动的给常量字符串分配了一块空间,常量字符串hello bit.其实就只有一份,因为来找到常量字符串hello bit.的时候它又不会发生改变,一份已经足够了,而既然都是一份,str3和str4代表的都是首元素h的地址,自然相等。我们看虽然arr和&arr打印出来的地址都是一样的但是,它们俩的不同代表了arr+1和&arr+1时跳过的字节,arr+1跳过四个字节,但是&arr+1可是跳过了28H=40个字节啊。我的小伙伴们,你思考的结果是不是这个呀?

2024-03-16 21:29:51 810 1

原创 数据在内存中的存储(小白编写)

但是对于整形来说的话,在计算机系统中,数值一律用补码来表示和存储,这样子可以将符号位和数值域统一处理。看吧神奇吧 欧克经过这两段代码相信大家对数据存储有了一定自己的理解,那么整形存储结束了,浮点型呢?大端(存储)模式,是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址。那这段代码的输出结果是啥呢,由于大部分人都没有学过浮点型数据的存储,那么我就直接运行了。小端(存储)模式,是指数据的低位保存在内存的低地址中,而数据的高位。以上就是我对数据存储的全部理解,如有错误,敬请指正!

2024-03-13 21:38:50 845

原创 const的使用

这样子的确可以改变n的值,但是这样子我可以举一个例子来说明:首先告诉你,你进这个房间只能用钥匙,你可倒好,没钥匙直接翻窗进去了,这样子是不符合常理的,当然这样子也可以,但是其实是不推荐这样子写的。我们从这里可以看到和上面一样的结论,我们只是要求把arr2的内容拷贝到arr1里,arr1可以改变,但是arr2的内容是绝对不能改变的,使用我们在传参的时候加上了const。1.const放在*的左边,限制指针指向的内容,也就是第一幅图的情况,这种情况就不能通过指针来修改指针指向的值,否则就会报错。

2024-03-13 17:58:03 300

原创 调试的一些相关技巧(小白版)+一段有趣的代码

一个优秀的程序员肯定是对调试很熟悉的,不然也不可能找到工作,所以我们在进行编程学习的时候,一开始是80%的时间写代码,20%的时间进行调试,到后面越来越熟悉之后,就会变成20%的时间写代码,80%的时间进行调试,因为对于已经很熟悉代码的程序员来说,代码的书写不在需要那么多时间了,但是其中会出现BUG,这就需要慢慢调试来解决。不知道大家有没有过这种经历,就是用VS的时候,想调试,但是一开始不知道在哪里调试,后面看老师调试之后,也想自己来调试一下,可是连调试的窗口都看不见。F11:逐语句,可以进入到函数内部。

2024-03-10 16:40:50 348 1

原创 三子棋重写(主要是分析细节问题(小白))

这里面的Full函数从字面意思就可以知道这是来判断棋盘是否满了的,满了的话就是平局嘛,其他情况Iswin函数都可以判断。首先我们来看这个三子棋的创作。

2024-03-08 20:26:58 365 1

原创 函数递归比较经典的题目(编程小白)奉上

其实函数递归对于一些问题来说是真的很简单,但是很多问题还是不要用函数递归的好,比如斐波那契数列问题,因为数字太大之后,很难直接算出来,有些时候反而不用递归用迭代(循环)还好一些。下面是我依据自己的思路来写出来的代码,一共是四个题目,斐波那契数列、青蛙跳台阶(本质上也是斐波那契数列)、汉诺塔(递归)、n的k次方(递归实现)。

2024-03-06 22:19:23 387

原创 三子棋首次创作

【代码】三子棋首次创作。

2023-09-09 16:56:02 38 1

原创 9-4扫雷创作

【代码】9-4扫雷创作。

2023-09-04 21:47:25 44 1

原创 冒泡排序和二分查找——某爱写代码的男孩

void bubble_sort(int arr[], int sz)//要么就写数组arr[],要么就写*arr(数组指针)if (arr[j]>arr[j + 1])//大于符号是升序,小于符号是降序。printf("找到了,下标是:%d", mid);printf("找到了,下标是:%d", ret);printf("找不到");//找得出来就返回,找不出来返回负数。printf("找不到");

2023-08-31 22:00:52 44

原创 扫雷的首次创作,代码如下

扫雷的函数和实现

2023-02-19 14:33:07 44

原创 自我介绍信

自我介绍

2022-12-02 22:51:24 81

原创 2022年12月1日,加入bite的第一天学习的第一个程序

第一天学习的第一个c语言程序

2022-12-02 22:34:45 94

空空如也

空空如也

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

TA关注的人

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