- 博客(17)
- 收藏
- 关注
原创 new与delete详解
new/delete申请和释放的是单个元素的空间,new[]和delete[]申请的是连续空间,而且new在申请空间失败时会抛异常,malloc会返回NULL。1. 调用operator new标准库函数申请空间,该函数分配一块足够大的,原始的,未命名的内存空间,以便存储特定的对象或对象的数组.因为一个指针8字节,A对象4字节.指针进行加减是跳过一个对象的大小,也就是4字节,所以我们a3-2就是存储10的地址.所以delete[]的元素个数是在new[]返回指针的前一个地址上面存储的.全局函数来申请空间,
2025-12-03 22:46:10
337
原创 C++多态详解1-静态多态
本文探讨了静态多态中的函数重载机制。在C语言中函数名必须唯一,而C++通过函数名+形参列表实现函数重载,编译器会生成不同的内部函数标识(如fii和fcc)。文章通过反汇编实验验证了重载函数的调用地址差异,并指出函数重载调用可能出现三种情况:最佳匹配、无匹配错误和二义性调用,这些问题同样存在于模板使用场景中。
2025-12-02 01:42:55
219
原创 MySQL数据类型
注意:关于无符号数值类型(超出范围与有符号同理)可以看到我们插入31成功, 插入32失败。2.1tinyint:我们先创建一张表。表示每个值的位数,范围从。1.MySQl数据类型。
2025-11-24 23:08:01
103
原创 linux之权限浅谈
1.引言在Linux操作系统中,"一切皆文件"这一核心理念贯穿了整个系统的设计。无论是普通文件、目录、设备、管道,还是网络套接字,在Linux中都被抽象为文件的形式进行处理。这种设计理念不仅简化了系统的操作接口,还提高了系统的灵活性和可扩展性。文件作为Linux系统中最基本的操作单元,由两个核心部分组成:文件内容和文件属性。文件内容是指文件中存储的实际数据,而文件属性则描述了文件的元数据信息,这些信息对于文件的管理和使用至关重要,今天我们谈谈文件属性中的权限方面。
2025-11-22 21:49:06
821
原创 List实现
因为是双向链表所以他的迭代器是一个Bidirection Iterator要支持++和--操作符的重载。对于list来说list和List中的节点是不同的结构需要分开设计。对于*的重载,我通过取值操作取List_Node 中的val.list的迭代器必须保证可以指向ListNode.我们可以通过->访问到List_Node内部信息.这种我们访问到T的内部成员(STL使用这种方式)由于是环形链表所以我们设置哨兵节点。对于->的重载,可以分为两种。这里我们设计成双向链表。2.list的迭代器。
2025-11-22 21:04:55
206
原创 Mysql表操作
本文介绍了MySQL数据库表的创建、修改和删除操作。创建表使用CREATE TABLE语法,可指定字段类型、字符集、校验规则和存储引擎,不同存储引擎会生成不同文件(如MyISAM生成.frm、.MYD、.MYI文件)。修改表通过ALTER TABLE实现,包括添加/修改/删除字段、修改表名和字段名等操作。删除表使用DROP TABLE命令。文章还展示了具体示例,如表创建时的字段注释、修改字段时的完整定义要求等,涵盖了数据库表管理的基本操作流程。
2025-11-21 14:53:49
321
原创 MySQL数据库操作与校验规则详解
本文介绍了MySQL数据库的基本操作,包括创建数据库、设置字符集和校验规则,以及数据库的查看、修改、删除、备份和恢复等操作。字符集和校验规则的选择会影响数据存储和查询结果。文章还详细说明了数据库备份的多种方式(整库/单表/多库)和恢复方法,并介绍了查看数据库连接情况的命令。通过具体代码示例和操作截图,帮助读者快速掌握MySQL数据库的核心管理功能。
2025-11-20 17:41:44
321
原创 C语言文件操作
我们程序的数据需要输出到各种外部设备,也需要从外部设备获取数据,不同的外部设备的输⼊输出 操作各不相同,为了⽅便程序员对各种设备进⾏⽅便的操作,我们抽象出了流的概念,我们可以把流想象成流淌着字符的河。这个结构体本质就是文件的一些属性的集合,比如我们向文件中进行IO操作,本质是从这个结构体内部的文件缓冲器(char *)也就是对字符串的操作,至于底层如何,不是我们今天讲的话题.而在磁盘中存储的便是文件,基于不同的视角我们可以把文件分成很多类.今天我们以写代码的角度,可以将文件分成1.程序文件,2.数据文件.
2025-11-20 16:56:43
809
原创 C++内联函数(inline)
在这里我编写了一个小函数 , 他的功能是比较两个string的长度, 返回长度较小的string的引用。如何声明为内联函数呢?只需在函数返回值的前面加上inline的关键词就行。将函数指定为内联函数,通常是在每一个函数的”调用点“上将其展开。例如上图shorter函数指点为内联函数,则会有如下调用。1.调用前要先保存寄存器, 并在返回是恢复。3.程序可能在函数中调用新的函数。2.可能需要拷贝实参。
2025-04-04 18:23:57
161
原创 C++入门基础篇
在C/C++中,变量,函数都是⼤量存在的,这些变量、函数的名称将都存在于全局作⽤域中,可能会导致很多冲突。在调⽤该函数时,如果没有指定实参则采⽤该形参的缺省值,否则使⽤指定的实参,缺省参数分为全缺省和半缺省参数。⽤inline修饰的函数叫做内联函数,编译时C++编译器会在调⽤的地⽅展开内联函数,这样调⽤内联函数就需要建⽴栈帧了,就可以提⾼效率。引⽤不是新定义⼀个变量,⽽是给已存在变量取了⼀个别名,编译器不会为引⽤变量开辟内存空间,它和它引⽤的变量共⽤同⼀块内存空间。半缺省就是部分形参给缺省值。
2025-01-25 20:18:38
524
原创 C语言数据内置类型
C语⾔提供了丰富的数据类型来描述⽣活中的各种数据。使⽤整型类型来描述整数,使⽤字符类型来描述字符,使⽤浮点型类型来描述⼩数。所谓“类型”,就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作数据。
2024-08-29 23:38:59
914
原创 c语言字符串函数模拟实现
字符串是一种重要的数据类型,但是C语言没有显式的字符串数据类型,字符串通过字符串常量或字符数组方式储存。C语言提供了许多与字符串相关函数,可以在头文件中查看函数声明
2024-08-24 14:03:07
950
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅