- 博客(16)
- 收藏
- 关注
原创 C/C++内存管理详解
/ new/delete 和 malloc/free最大区别是 new/delete对于【自定义类型】除了开空间 //还会调用构造函数和析构函数 A * p1 = new A;delete p1;delete p2;return 0;C++中如果是申请内置类型,用new/delete和malloc/free没有什么区别。
2023-05-21 22:52:10 142
原创 C++类和对象(三)
现实生活中的实体计算机并不认识,计算机只认识二进制格式的数据。如果想要让计算机认识现实生活中的实体,用户必须通过某种面向对象的语言,对实体进行描述,然后通过编写程序,创建对象后计算机才可以认识。比如想要让计算机认识洗衣机,就需要
2023-05-18 23:27:02 384
原创 C++类和对象(二)
如果一个类中什么成员都没有,简称为空类。空类中真的什么都没有吗?并不是,任何类在什么都不写时,编译器会自动生成以下6个默认成员函数。默认成员函数:不用用户自己实现,编译器会自动生成的成员函数称为默认成员函数。注意:如果你自己写了这些函数,那编译器就不会生成,而是使用你写的函数。对于以下Date类:对于Date类,可以通过 调用Init 函数给对象设置日期,但如果每次创建对象时都调用该函数设置信息,未免有点麻烦,那能否在创建对象时,就将对象中的成员变量初始化?构造函数就可以完成这个任务。构造函数是一个特
2023-05-17 23:52:19 341
原创 C++类和对象(一)
/ 类体:由成员函数和成员变量组成 };// 一定要注意后面的分号class为定义类的关键字,Stack为类的名字,{}中为类的主体,注意类定义结束时后面分号不能省略。类体中内容称为类的成员:类中的变量称为类的属性或成员变量;类中的函数称为类的方法或者成员函数。声明和定义全部放在类体中,需注意:成员函数如果在类中定义,编译器可能会将其当成内联函数处理。public ://名字 char * _sex;//性别 int _age;//年龄 };2、声明放在头文件(.h)中,定义。
2023-05-15 23:17:58 46
原创 linux粘滞位概念讲解
所以我们回到public所在的目录,由于此文件是由root创建,所以我们需要sudo来执行指令或者切换为root用户来执行指令chmod +t 文件名。然后我们发现public目录的other最后一位权限由x变为了t,此时别人就不能删除我们的文件,当然我们也不能删除别人的文件。由root创建的public共享目录,我们可以看到文件不管是对文件拥有者,所属组,还是other的权限都是全开放的。由于在同一个目录下,别的用户是可以删除你的文件的,那怎么办呢,所以我们要引入。
2023-02-05 21:45:10 73
原创 【数据结构】二叉树详细简介
由于现在大家对二叉树结构掌握还不够深入,为了降低大家学习成本,此处手动快速创建一棵简单的二叉树,快速进入二叉树操作学习,等二叉树结构了解的差不多时,我们反过头再来研究二叉树真正的创建方式。所谓二叉树遍历(Traversal)是按照某种特定的规则,依次对二叉树中的节点进行相应的操作,并且每个节点只操作一次。设二叉树的根节点所在层数为1,层序遍历就是从所在二叉树的根节点出发,首先访问第一层的树根节点,然后从左到右访问第2层上的节点,接着是第三层的节点,以此类推,自上而下,自左至右。如上图:B是A的孩子节点。
2023-01-28 19:46:56 798
原创 【数据结构】八大排序:直接插入排序,希尔排序,直接选择排序,堆排序,冒泡排序,快速排序,归并排序,计数排序详细教学
通过了解不同排序的时间和空间复杂度已经稳定性,我们可以依据不同情况选择可以满足我们需求的排序。
2023-01-19 08:30:00 1810
原创 文件操作详解
用来存放文件的相关信息(如文件的名字,文件状态及文件当前的位置等)。buf为存储字符串的首地址,n为读取字符串的长度,fp为文件指针。fopen函数用来打开文件,fclose函数用来关闭文件。文件在读写之前应该先打开文件,使用文件后要关闭文件。每写入或每读取一个字符,文件指针都会向后移动一位。str为要输出字符串的首地址,fp为文件指针。stream为文件指针,offset为偏移量,每个被使用的文件都在内存中开辟了一个相应的。ch为要输出的字符,fp为文件指针。让文件指针回到文件的起始位置。
2022-10-12 21:50:24 135
原创 【动态内存函数】malloc,free,calloc,realloc用法
malloc函数在使用时需要传过去开辟的字节个数,并返回开辟空间的起始地址,由于返回的地址为无类型的我们需要对它进行强制类型转换成我们需要的类型。为了防止因为realloc开辟空间失败而导致p找不到原来开辟的空间,我们需要用一个新指针ptr来判断是否开辟空间成功。要注意的是在释放完空间后p指针还是指向之前开辟的空间,为了安全,我们需要将指针p指向NULL。动态开辟是在堆区上开辟内存的,而堆区上开辟的内存需要程序员手动释放,否则会造成内存泄漏。释放内存所需要的函数为free函数。
2022-10-05 21:06:01 330
原创 【结构体内存对齐】
char c1;int i;char c2;};char c1;char c2;int i;};}上述代码的运行结果为什么?上面两个结构体类型分别有两个char类型和一个int类型,所以我们猜测运行结果为6 6;运行一下:我们发现运行结果为12 8,和我们预想的不一样,这是为什么;
2022-09-19 18:50:45 68
原创 【数据在内存中的存储】原码,反码,补码以及,有无符号数和大小端介绍
本文介绍关于数据是如何保存在内存中的,以及数据如何从内存中提取出我们在这里设置一个变量我们发现它的内容在内存中的存储是倒着排序的,这是为什么呢?大端(存储)模式:是指数据的低位保存在内存的高地址中,而数据的高位,保存在内存的低地址中;小端(存储)模式:是指数据的低位保存在内存的低地址中,而数据的高位,,保存在内存的高地址中。需要注意的是大端小端存储是以字节为单位来进行倒序,而不会对字节里的内容进行倒序,就如上图的“12”,并没有倒序成“21”以上就是今天要讲的内容,本文在后续会对不足的地方进行修进。
2022-08-24 21:52:26 717
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人