自定义博客皮肤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)
  • 收藏
  • 关注

原创 gdb调试(vs人的良药)

用gdb调试如同用vs调试

2023-04-25 08:00:00 190 1

原创 红黑树的实现(没有删除)

红黑树本质是一种二叉搜索树,在二叉搜索树基础上每个结点多了一个颜色(可以是RED或者BLACK),通过对结点的控制,红黑树会确保没有一条路径会比其他路径长出两倍.因此是接近平衡的。

2023-03-15 23:33:13 177

原创 linux权限概念

文件夹默认权限为666目录默认权限为777但实际我们创建的文件看到的默认权限不是上面这个值,原因是受到了umask的影响实际看到的权限是默认权限~&umask。在root账号下可以使用adduser[用户名]来创建新的普通用户。r--可读-w-可写。--x可执行rw-可读可写。超级用户可以说事最厉害的权限最全的可以做任何事不受限制。rwx可读可写可执行---无权限。...

2022-07-22 15:27:17 198

原创 力扣 328.奇偶链表(c语言)

思路非常简单 把奇数拼成一个链表 偶数拼成一个链表 然后两个链表在合体比如给的示例奇数链表1->3->5偶数链表2->4->NULL在组合就变成了1->3->5->2->4->NULL要注意的点 记得存好偶数的头结点注意奇偶指针的变动规律看代码 ListNode* oddEvenList(ListNode* head) { if(head==NULL)return head; ..

2022-05-10 08:55:01 446

原创 c语言实现单链表(数据结构)

目录实现单链表的基本操作想要把链表研究透彻 就需要对指针的深入了解先引入一个概念 什么是指针?什么是变量?什么是指针变量?我们创建的 int char double 都属于变量变量有地址 指向这个地址就能改变这个变量我们创建的指针也是变量那指针变量也有自己的地址指向这个地址就能改变这个变量这个问题非常抽象改变变量 就需要创建一个指针指向这个变量的地址如果我们想要改变指针变量(注意这时就应该是指针变量)就要创建一个指针指向指针变量的地址才能改变这个...

2022-04-25 17:02:18 2431 5

原创 寻找单身狗(c语言)

在一个数组中寻找一只出现一次的的数字(单身狗)当今社会 三人行 必有狗 是谁我不说数组中也会出现 单身狗数字例如数组 1 2 2 3 3 1 4中 4就是单身狗思路因为单身狗只有一个 直接全部异或异或的特点相同为0,相异为1,如果有重复的数字 异或就等于0 最后只会留一下一个单身狗看代码int main(){ int arr[] = { 1,2,2,3,3,1,4 }; int dog = 0; int sz = sizeof(arr) / sizeof(ar...

2022-04-23 13:26:19 1920 2

原创 函数栈帧非战争

如果能理解函数栈帧的创建与销毁 可以大大提高我们理解c语言其他知识点的能力接下来我用vs2019的环境给大家简单讲解一下函数栈帧的创建与销毁因为会用到汇编 所以先给大家介绍几个汇编指令和要用到的寄存器大家要注意的是栈区使用规则是先使用高地址 在使用低地址在本文章中 下面是高地址 上面是低地址用一段及其简单的调用函数来调试这个过程要注意的是有其他函数来调用main函数当我们运行程序我们转到反汇编上来就是三个压栈 注意压栈的同时esp也会变动...

2022-04-22 23:35:58 278

原创 力扣9.回文数(c语言)

今天给大家带来的思路是 反转数字在判断 假设我们输入1221 我们只需要翻转一半 翻转后面的21就可以 得到12 12=12所以他是回文数1.如何翻转数字我们把数字x%10拿到最后一位 在把数字/10拿把最后一位移除例如1221 先%10=1,在/10=122;2.如何知道已经翻转一半例如1221 我们 先拿到了1 tmp=1,121>1 在拿到 2,tmp=12; 12>21此条件不成立所以就代表已经翻转了一半 除了这个思想我们应该在去处理特殊的数字 比...

2022-04-22 18:09:10 967

原创 力扣27.移除元素(c语言实现)

这道题的没有对时间复杂度提出要求 接下来给大家带来一个简单高效的解法 双指针法思路:定义变量1 和变量2 1记为开始位置 2记为结束位置 我们挪动变量2 判断变量2指向的数字是否等于val 如果等于 不作动作 如果不等于 把这个值覆盖给变量1 并且让变量1也挪动 直至结尾 覆盖了所有不是val的值接下来以例题作为参考分析一下思路接下来看代码int removeElement(int* nums, int numsSize, int val){ int lef...

2022-04-22 13:20:25 1174

原创 力扣189. 轮转数组 (保姆式教学)三步翻转法(左移或右移数组(字符串))

给你一个数组,将数组中的元素向右轮转 k 个位置,其中 k 是非负数输入: nums = [1,2,3,4,5,6,7], k = 3输出: [5,6,7,1,2,3,4]解释:向右轮转 1 步: [7,1,2,3,4,5,6]向右轮转 2 步: [6,7,1,2,3,4,5]向右轮转 3 步: [5,6,7,1,2,3,4]来源:力扣(LeetCode)链接:https://leetcode-cn.com/problems/rotate-array来看看三步翻转的思路原始数组.

2022-04-20 00:08:06 313

原创 预处理那些事(定义表示符,定义宏,#define)

介绍预处理之前 先铺垫一小端程序运行的小知识方便我们理解预处理当我们一个程序运行的时候是通过很多步的当然所有文件执行时都会有编译环境和运行环境编译环境编译也分为几部分预编译 处理预定义内容 编译 语法分析 词法分析 语义分析 符号汇总关于这个符号 相信会有人好奇 我们写的不都是代码嘛 ? 为什么会有符号呢其实每一个函数都是符号汇编 形成符号表把所有的符号汇总在一起链接合并段表 符号表的合并和符号表的重定义执行程序1 执行程序时 程序必须加载..

2022-04-15 16:08:46 606

原创 文件操作(新手上手 )

我们为什么使用文件操作?我们使用c语言编出一个程序时 数据每次都要从新输入 随着程序的结束 数据也就结束有没有什么方法可以将程序中的数据存到硬盘上 每次运行程序时 自动读取硬盘上的数据呢就像游戏存档一样 这就是文件操作 对文件进行 读或写当我们使用变量时 int char float文件也一样 FILE我们创建一个文件指针FILE * pf;pf指向某个文件信息区,通过文件信息区的信息就可以访问该文件对文件进行操作前我们应该先打开文件 (有打开就要有关闭)...

2022-04-14 15:18:00 213

原创 动态内存管理

介绍动态内存之前先介绍一下内存分区菜鸡理解的可能不深 希望各位大佬可以执教全局区全局区就是存放全局变量和静态变量的以及常量代码区 代码共享的区域 只能读不能改写的地方栈区局部变量 函数形参 呦编译器自动分配和释放堆区由操作者自己分配和释放接下来就介绍动态空间 堆区空间的使用我们原来开辟的空间都是固定的,创建数组时必须申明数组的大小但是有时候我们只想输入一个数字根据数字的大小来创建数组或者数字大的一块空间这时候动态内存就派上用处了动态内存函数的介绍c

2022-04-01 15:19:34 594

原创 自定义类型(struct,union,enum)保姆式教学

结构体类型联合体类型枚举类型结构体类型的声明struct 变量名{成员类型}; //注意的是这里有一个分号千万不要忘记结构体的创建和初始化假如我们来用结构体来创建一个学生类型struct std{ int age;//年龄 char name[20];//姓名};我们使用结构体创建变量时可以分为两种struct std//方法一{ int age; char name[]}s1,s2;//这里我们就创建好了两个结构体变量i

2022-03-30 22:05:24 748 4

空空如也

空空如也

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

TA关注的人

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