- 博客(26)
- 收藏
- 关注
原创 C++入门基础(超详细) 需:C语言基础
定义namespace命名空间时, 后面跟命名空间的名字 然后加上括号" { } "即可;{ }中是命名成员,命名成员的类型可以是定义变量、函数、结构体、类型等等本质上是定义一个域,不用域里面的名字可以相同,这样就不冲突了,此时会打印这个函数的地址int main()return 0;在不同的域中出现变量a,那么怎么调用到全部的变量呢?: : 域作用限定符这个: : 符号的左边不写,只写符号右边a,默认访问全局的a在: : 符号左边加上fight,可以访问到fight域里的a。
2024-07-27 21:00:15
979
原创 非比较排序 计数排序
count[a[j] - min]++ 和 a[y++] = x + min。动图解释,其实这个排序很简单,最主要就是。这两句核心代码,这个会了其他都是水到渠成。
2024-07-07 19:51:32
168
原创 函数栈帧的创建和销毁,带动图详细解析,带你大致分析汇编代码
在写C语言程序的时候,经常为了实现一个功能来封装一个函数,C语言是以函数为基础的基本单位函数是怎么调用的?函数是怎么传参的?函数的返回值怎么带回?上面这些问题都与函数栈帧有关系函数栈帧(stack frame),在函数调用时,系统会调用栈(call stack)所开辟空间,这些空间用来存放:函数参数和函数返回值临时变量(函数静态局部变量和编译器自动产生的其他临时变量)保存上下文信息(需要保持不变的寄存器)
2024-06-21 15:37:10
811
1
原创 二叉树和数的概念;以及二叉树中堆的实现和堆排序(向上和向下调整算法)大白话 上篇
按照思维惯性,可能大部分人会认为升序建小堆,降序建大堆;但是不是的升序建大堆降序建小堆;为什么呢?假如是降序建大堆 那么刚好数据在堆顶可以直接拿到,但是呢 看图例所以降序建小堆才是对的,再来看看过程最近快期末了,很烦,很不喜欢做自己不喜欢的时候;这期稍微更新慢了,一眨眼博客半个月没写了加油!,各位希望以后有机会相见!
2024-06-15 14:25:58
831
4
原创 插入排序以及希尔排序; 先学会插入,希尔会更简单喔
gap越大,大的可以越快的跳到后面,小的可以更快跳到前面,但是就会不接近有序gap越小,跳的越慢,但是更加接近有序,gap == 1相当于插入排序了所以为了结合两者优点,直接让gap慢慢变小希尔排序的思想非常好,也非常奇妙,估计大部分普通人想不到这个方法;当然可以学习到这么好的思路,也是很大的进步了;万一你以后也发明了一种很厉害的算法呢如果你最近在苦恼要不要写博客,我的建议是一定写,个人感觉这个加分项还是很有必要握在手里的这里不是直接预排序完,然后就直接排序;要进行多次预排序才行。
2024-06-02 20:32:14
940
2
原创 栈:概念与实现,超简单!!!
压栈:栈的插入操作叫做进栈/压栈/入栈,入数据在栈顶。出栈:栈的删除操作叫做出栈,出数据也在栈顶。栈的元素遵循后进先出LIFO(Last In First Out)的原则。后面进来的数据先出去
2024-05-13 09:19:49
293
2
原创 深入理解指针3(超详细!!!),字符指针;数组指针;函数指针,转换表
pstr + 1是跳过整个数组(10个字节),注意:指针+- 运算取决于当前的指针指向的类型。而第一行的类型是:数组指针类型。所以这里二维数组的数组名。也可以表示数组首元素地址。访问到 \0 前的数据。刚好类型也是int*
2024-05-08 15:31:27
825
原创 链表的带环问题 链表的深度拷贝
是这个建立在slow走1步,fast走3步的情况。所以终究还是有机会追上的对吗?代码很简单,最主要就是如何证明。只要尾插到后面就行了,
2024-05-03 15:20:28
832
2
原创 时间复杂度空间复杂度 力扣:转轮数组,消失的数字
本质:计算算法复杂度(次数) 属于哪个量级(level)总结:个人觉得可能会不太详细,但是重点部分都没拉下。例如:在长度N的数组中查找一个数据。一定要注意,数组下标绝对不能是负数。时间复杂度计算的是大概的执行次数。
2024-05-03 13:10:24
1171
1
原创 单链表详解(无哨兵位),实现增删改查
链表不能为空,为NULL删什么啊,当然对应的二级指针也不能为空-> 符号优先级 比 * 星号高两个问题点一个节点:这个问题怎么提出的因为链表为空不能删会报错,那么本身方法无意义了多个节点:先把指向的节点给到*pphead,也就是我们的头节点,然后再删除之前的头节点头删的时候要把这个节点删除,但是我们要能找到下一个节点并成为头节点由此可以得出先把。不能直接给赋值给*pphead,因为后面还要删除头节点,所以我们先保存下一个节点的地址//链表为空就没有删除的意义了//保存下一个节点。
2024-04-13 22:40:23
1098
6
原创 顺序表基础详细版!!!,不管你看那篇文章,其实都要静下心看看
空间小了不够用,空间大了浪费。下面的是静态顺序表的,基本结构体,要写在头文件中。动态顺序表可以,通过realloc动态申请空间。OLDataType全会跟着更改类型。pos --> pos - 1位置处。因为我们开辟的空间实际在arr里面。
2024-04-07 15:01:28
981
1
原创 深入理解指针2,数组名理解,指针访问数组,冒泡排序,二级指针,指针数组模拟二位数组
最后重要的是要多去写写代码,看的懂地,不一定会敲代码的,脑子会了手不会所以要把会的输出出来,通过写代码和写博客,讲给别人听。
2024-04-07 15:00:55
958
2
原创 C语言编译和链接,带你逐步了解程序执行过程,相当于练习内功!!!
如果本篇文章对你有帮助,还请留下一键三连,我会继续努力创作出更加详细的文章,重点是理解消化这个过程,特别是在写出BUG的时候,你要知道是在哪个阶段出的问题,可以更好的入手解决问题。
2024-04-04 11:59:52
677
2
原创 带你手拿把掐胖揍,C语言的动态内存管理,柔性数组
首先来介绍malloc,malloc开辟一块空间返回一个开辟成功地址。不管怎么样每次开辟了空间之后要对其判断一下。内存泄漏了,因为指针p的地址,我们找不到了。下面这个例子其实是上一个代码后面加上的。INT_MAX(是整形的最大值)
2024-03-27 11:34:43
710
2
原创 自定义类型:结构体详解,位段,如何传参,如何分配空间
这个是基本结构解释struct tag //第一个参数是表示结构体,第二个结构体的名字//结构体成员,一个或者多个//创建结构体同时声明了一个变量,是全局变量2. 那么如何创建一个结构体的类型?下面创建的就是一个结构体类型,描述着各种属性//名字int age;//年龄int high;//身高//体重3.竟然结构体类型创建好了,接下来就是结构体初始化,还有声明变量s1 和 s2 是在创建结构体的同时一同创建的全局变量 s2 是正好初始化了值s3 和 s1 是一个意思 都是全局变量。
2024-03-22 22:57:55
929
3
原创 整形数据与浮点型的数据在内存中存储的形式,以及大小端字节序(笔记版)
因为CPU的运算器一般都是整形长度,CPU的通用寄存器也是这个长度,为了方便计算,所以要以符号位向前补齐,不信可以去试试呢。0 10000010 00100000000000000000000 ,在整型看来这会是一个很大的数,所以会输出一个很大的值。E全为0 浮点数的指数E等于1-127(或者1-1023)即为真实值 ±0,以及接近于0的很小的数字。E全为1 如果有效数字M全为0,表示±无穷大(正负取决于符号位s)。E为⼀个无符号整数(unsignedint)特殊情况就是这样的,留个印象就行。
2024-03-18 14:18:25
861
原创 c语言内存函数(memcpy),详细简介使用以及对应的模拟实现(动图详解)
可以设想一下错误的:你按照从3 --> 5 4 --> 6 ,5 --> 7?真的5会过去吗,其实之前的3已经覆盖了 就变成了 3 (拷贝)-- > 7,那最终错结果会是 1 2 3 4 3 4 3 8 9。为什么用强制转换(char*)指针呢,而不用int*呢,因为这样可以用于多种类型,就比如:假如是9个字节呢?传参部分要和实参对应上,特么要注意的是size_t的参数部分,写成5 * sizeof(int)会更好,但是写成 20字节也没问题。从源地址拷贝到目标地址。
2024-03-16 21:07:27
2101
5
原创 指针详解1:指针的基础 (详细简略版) 取地址符(&)解引用符号(*)等等
指针详解1:指针的基础 (详细简略版) 取地址符(&)解引用符号(*),让你由浅入深轻松拿捏指针
2024-03-11 15:10:44
849
2
原创 sizeof和strlen。指针 ,数组名 ,&取地址,指针加减运算,在两个之中的差异,主要学习其中的思路
主要就是刚开始的三条数组名的意义吃透,这样在未来学习打下坚实的基础本来就很差了,不如好一点吧,加油吧伙计们,坚持一年见分晓。
2024-03-08 12:25:42
837
9
原创 喝cola(可乐)问题 ,喝汽水,1瓶汽水1元,2个空瓶可以换一瓶汽水,给20元,可以喝多少汽水(编程实现)。
兑换完并且喝完,产生了空瓶数。empty % 2,假设就是5个空瓶,余下1个不够兑换的空瓶,加上前的。,意思是第一次买了5瓶,然后用两个空瓶换一瓶,兑换的瓶数再和总数相加,以此类推。求Sn=a+aa+aaa+aaaa+aaaaa的前5项之和,其中a是一个数字,while循环是因为当空瓶数还剩下一个时就停止循环。例如:2+22+222+2222+22222。用钱去买可乐,就会有5瓶,并且产生5个空瓶。方法2:其实可以发现就是一个等差数列。往后以次类推,然后在回到。练习日志 ,02/20。
2024-02-23 14:30:53
372
2
原创 控制版c语言扫雷喵 虽然写的可能不太好,但是是我理解的大白话的思路,可以借鉴一下
5.4.先用一个while循环,每成功布置一次雷就count--,知道为0,循环结束,rand一个生成随机数的函数,一般这个函数是需要srand函数,用这个来获取种子,一般是要搭配使用。在程序的最开头设置,time是获取一个时间戳,1970—现在的总共的秒数,但是返回的类型是time_s,所有用unsigned,强制转换成无符号整型。switch判断语句,再让用户输入1或者0来判断,1开始游戏,0结束提出,假如输入了3, 8,9等等其他的数就会让用户再次输入(再次输入是因为input的值是1,会一直循环)
2023-12-27 18:17:29
817
2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人