- 博客(22)
- 收藏
- 关注
原创 C++学习笔记——内存管理
int main()// new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间还会调用构造函数和析构函数free(p1);delete p2;// 内置类型是几乎是一样的// Cfree(p3);delete p4;free(p5);return 0;
2025-02-11 16:31:40
412
原创 C++学习笔记——类和对象(中)
内置类型就是语⾔提供的原⽣数据类型,如:int/char/double/指针等,⾃定义类型就是我们使⽤class/struct等关键字⾃⼰定义的类型。
2025-02-10 14:07:04
598
原创 C++学习笔记——类和对象(上)
再深入一些的讲,函数指针是⼀个地址,调⽤函数被编译成汇编指令[call 地址],其实编译器在编译链接时,就要找到函数的地址,而不是在运⾏时找(当然也有例外,动态多态是在运行时找的,就需要存储函数地址,这个之后会说)所以总而言之,对象的存储方式大概如下图所示。类实例化出的每个对象,都有独⽴的数据空间,但对象中只包含成员变量的空间(因为不同的对象,成员变量的值通常是不同的)而不包含成员函数,因为后者作为函数,只需要分配一份空间就能保证复用性,为每一个对象都分配空间则会造成浪费。,这不是造成了空间浪费吗?
2025-02-08 17:15:04
1150
原创 c++学习笔记——c++基础
定义命名空间,需要使⽤到namespace关键字,后⾯跟命名空间的名字,然后接⼀对{}即可,{}中即为命名空间的成员。命名空间中可以定义变量/函数/类型等。namespace本质是定义出⼀个域,这个域跟全局域各⾃独⽴,不同的域可以定义同名变量,所以下⾯的rand不在冲突了。// 变量// 函数// 类型int val;// 指定访问abc中的rand// ::称为域作用限定符return 0;C++中的域有函数局部域全局域命名空间域类域;域影响的是编译时。
2025-02-08 11:54:23
1071
原创 数据结构学习笔记——排序
稳定性:关键字相同的数据记录,排序后相对顺序仍保持不变例如,两个25,在排序完后,有*的25仍在后方,说明该排序算法是稳定的内部排序:数据元素全部放在内存中的排序外部排序:数据元素太多不能同时放在内存中,根据排序过程的要求不断地在内外存之间移动数据的排序直接插入排序是一种简单的插入排序法,其基本思想是:把待排序的记录按其关键码值的大小逐个插入到一个已经排好序的有序序列中,直到所有的记录插入完为止,得到一个新的有序序列简单来说,待排序数据如下排序轮次如下每一轮排好一个数,下一轮新拿出来的数,插入到原来已排好的
2025-01-18 14:22:51
1123
原创 栈和队列学习笔记
队列也可以使用数组和链表的结构实现,使用链表的结构实现会更优一点,因为如果使用数组的结构,出队时会在数组头上出数据,效率会比较低(因为要想确保空间利用率,一般出队后会选择搬移数据,这对数组来说是个比较大的负担)当然,我们还需要考虑运算优先级,即运算顺序的问题,+-*/还好,但输入的表达式中还有可能包含括号,由是则需要多一层考虑,以使最终计算的顺序能如上述的后缀一样。换成栈的理解就是,走完一步时,将当前所在的位置进栈,然后找下一步,如果走不了,说明当前位置不对,出栈。随后如果连续接收到左括号,则不断进堆栈。
2024-10-12 13:08:18
632
原创 链表相关概念(更多通过刷题来熟悉链表
这是因为在定义结构体的时候其大小仍未确定,而结构中嵌套结构其大小就更不知道怎么算了,相较而言,不管什么类型的指针,其大小都是确定的,所以使用指针也就更加合理。图中指针变量plist保存的是第一个节点的地址,我们称plist此时“指向”第一个节点,如果我们希望plist“指向”第二个节点时,只需要修改plist保存的内容为0x0012FFA0。,存储地址的原因在于,链表的物理结构并不像数组一样是连续的,只有提供地址才能凭此找到下一个节点。虽然有这么多的链表结构,但我们实际中最常用的还是两种结构,
2024-08-19 18:13:39
363
原创 C语言实现贪吃蛇游戏
Windows这个多作业系统除了协调应用程序的执行,分配内存,管理资源外,它同时也是一个很大的服务中心,调用这个服务中心的各种服务(每一种服务就是一个函数),可以帮应用程序达到开启视窗,描绘图形,使用周边设备等目的,由于这些函数服务的对象时应用程序(Application),所以便称之为Application Program Interface,简称API函数,Win32 API也就是Microsoft Windows 32位平台的应用程序编程接口。
2024-08-16 17:08:00
798
原创 C语言学习记录 - 编译和链接
在ANSI C(标准C)的任何一种实现中,存在两个不同的环境第一种是翻译环境,在这个环境中源代码被转换为可执行的机器指令(二进制指令)第二种是执行环境,它用于实际执行代码。
2024-05-02 18:19:36
760
1
原创 C语言学习记录 - 文件操作相关
我们写的程序的数据都是存储在电脑内存中的,如果程序退出,内存收回,数据就丢失了,等再次运行程序,是看不到上次程序的数据的,如果要将数据进行持久化的保存,就需要用到文件在程序设计中,一般我们讲的文件有两种:程序文件,数据文件(从文件功能的角度来分类的):包括源程序文件(后缀为.c这样的),目标文件(windows环境后缀为.obj),可执行程序(windows环境后缀为.exe):文件的内容不一定是程序,而是程序运行时读写的数据,比如程序运行需要从中读取数据的文件,或者输出内容的文件这里主要讲数据文件。
2024-05-02 18:08:11
78
原创 C语言学习记录 - 数据在内存中的存储
整数的二进制表示方法有三种,即三种表示方法均有和两部分,符号位都是用0表示“正”,用1表示“负”,而数值为最高位的一位被当作符号位,剩余都是数值位正数原反补相同负数计算机内存中存放的整数都是补码的形式,有如下好处:使用补码,可以将符号位和数值位统一处理同时,加法减法也可以统一处理()此外,补码与原码相互转换,其运算过程是相同的,不需要额外的硬件电路。
2024-04-20 10:36:40
959
原创 C语言学习记录 - 字符函数,字符串函数,内存函数
c语言中有一系列函数是专门做字符分类的,也就是一个字符是属于什么类型的字符的函数这些函数的使用都需要包含一个头文件ctype.h是能够判断参数部分的c是否是小写字母的,如果是小写字母就返回非0整数,如果不是就返回0。
2024-04-19 16:28:29
1184
原创 指针学习记录 - C语言
每个内存单元大小取1字节并且有编号,👈这个就叫做地址,也叫指针即:内存单元编号==地址==指针内存中字节很多,需要给内存编址,这并不是把每个字节的地址记录下来,而是通过硬件设计完成的硬件编址也是如此计算机内有很多硬件单元,而硬件单元要相互协同工作,👈这至少需要能够进行数据传递如何通信呢?就是用“线”连起来,这里主要讲一个地址总线可以简单理解为:32位的机器有32根地址总线,每根线只有两态,表示0,1【电脉冲有无】,那么就能表示2^32种含义,每种含义都代表一种地址。
2024-04-18 11:10:45
907
原创 c语言实现扫雷游戏
呃呃呃其实是代码写完了才写的这篇文章,所以中间的测试就看不到(害,那么进入游戏首先应当是有一个菜单界面,供玩家选择开始游戏还是退出游戏,对吧。
2024-04-01 12:26:00
938
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人