自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 C++函数模板技术

未知类型名可以取任意名字,一般约定T。

2024-09-27 18:31:02 404

原创 C++ 文件I/O流

注意:ios::里面打开模式单独使用和混合使用时候有些功能会有所删减变化,不是简单的功能相加,具体底层调用哪个打开模式可以通过strace ./a.out 来追踪底层对系统函数的调用。c++为文件IO提供了俩套设置位置指针的成员函数,为了兼容一些有俩个位置指针的操作系统,但是UNIX、Linux、Windows系统底层只有一个文件位置指针,所以使用哪一套都没有区别。对类对象操作符<< >>进行重载。如何以文本方式读写类对象?流对象 << 写操作。流对象 >> 读操作。

2024-09-27 11:57:55 697

原创 纯虚函数、工厂模式

1、纯虚函数可以不去实现,一般人也没必要去实现。2、父类中如果有纯虚函数,那么继承该父类的子类必须对其进行覆盖,否则无法创建对象。3、有纯虚函数的类不能创建对象。4、纯虚函数就是为了强制子类去覆盖,为了强制子类实现某些功能。5、有纯虚函数的类都称为抽象类。6、析构函数可以设置为纯虚函数,但是必须在类外定义。

2024-09-27 10:11:10 379

原创 虚函数,虚函数表,虚表指针,覆盖

在成员函数前面加virtual后,该函数就称为虚函数,此时该类就会像虚继承一样多了一个虚表指针(虚函数表指针、虚指针)

2024-09-25 20:23:26 493

原创 C语言文件管理

文件描述符是一种非负的整数,用于表示一个打开了的文件由系统调用(open\creat)返回值,在后续操作文件时可以被内核空间引用去操作对应的文件它代表了一个内核对象(类似于FILE*),因为内核不能暴露它的内存地址,因此不能返回真正的文件地址给用户内核中有一张表格,记录了所有被打开的文件对象,文件描述符就是访问这张表格的下标,文件描述符也叫做句柄,是用户操作文件的凭证内核只要启动,一定会给每个进程打开三个文件描述符,并且是一直默认打开,除非自己手动关闭// 在<unistd.h> 定义了三个宏。

2024-08-29 19:24:03 880

原创 Linux系统内存管理API

mmap、munmap底层不维护任何东西,只会返回映射后的内存首地址brk、sbrk底层维护一个位置指针,通过该指针的位置决定映射、取消映射每个进程都有4G的虚拟内存,所有的虚拟内存编号都是一个数字而已,必须与物理内存建立映射后才能使用,否则段错误平时所说的内存的申请和释放有两层含义权限的分配和回收映射关系的建立和取消。

2024-08-29 19:13:37 566

原创 Linux系统环境变量

环境变量一般是指在操作系统中用来指定操作系统运行环境的一些数值参数,例如:系统头文件的加载位置、临时文件位置等环境变量是在操作系统中具有一个特定名字的对象,它里面包含了一个程序或者多个程序所需要用到的信息。例如操作系统中有path环境变量,告诉应用程序执行可执行文件时,系统会去到哪个路径查找用户可以通过设置、获取环境变量、更好地处理运行程序。

2024-08-14 19:57:37 437

原创 计算机网络基础知识

把分布在不同地理位置的计算机与专门的网络设备用通信线路互相连成一个规模大、功能强的系统, 从而使众多计算机可以方便地互相传递信息、共享软件、硬件、数据信息等。计算机网络就是由通信线路互相连接的许多自主工作的计算机构成的的集合,它是计算机技术和通信 技术相结合的产物。

2024-08-13 19:13:39 768

原创 C语言的堆内存管理

是进程的一个内存段(text、data、bss、heap、stack),由程序员手动管理特点就是足够大,缺点就是使用麻烦,比较危险。操作系统交给malloc33页内存(135168个字节),可访问的范围是0~135167,malloc会预留8个字节的空隙,返回给程序的是33页内存的第9个字节的地址(33页内存还剩135160个字节),所以可访问的范围是0~135159,只要在这个范围就不会出现段错误。

2024-08-06 19:49:04 1563

原创 c语言信号集与信号屏蔽

是一种专门用于存储多个信号的数据类型sigset_t该类型占128字节,每个字节代表了一种信号的有或无。

2024-08-05 09:27:51 480

原创 C语言中断信号处理

当进程接受到消息后中止当前正在执行的任务,转而执行其他任务,等待其他任务执行完毕后再返回继续执行,这种执行模式称为中断,分为硬件中断和软件中断俩种。信号式UNIX、类UNIX以及其他POSIX兼容的系统中,为了完成不同进程之间通讯的一种方式,是一种软中断,是一种异步处理机制,用于提醒进程某个事件发生了,可能要去处理。

2024-08-01 20:26:17 2145

原创 操作系统内存管理

虚拟内存是操作系统对进行内存空间地址进行管理的一套精心设计的逻辑层面的内存空间概念在32位系统下,操作系统规定给每个启动的进程拥有4G大小虚拟内存,但是这4G的虚拟内存不能直接使用的,其实就是系统给进程画的饼,当进程真正要存储数据需要使用内存时,系统会把一部分虚拟内存与物理内存进行映射,必须进行映射后的虚拟内存才能正常使用如果非要使用没有映射过的虚拟内存,操作系统一定会在运行时产生段错误。

2024-07-30 18:12:37 1051

原创 认识操作系统

诞生于1971年美国AT&T公司的贝尔实验室,主要开发者是丹尼斯.里奇、肯.汤普逊。该系统的主要特点是支持多用户、多任务,并支持多种处理器架构,同时具有高安全性、高可靠性、高稳定性,既可以构建大型关键业务系统的商业服务器,也可以构建面向移动终端、手持设备、可穿戴设备的嵌入式应用。

2024-07-29 19:44:50 1148

原创 线性表的顺序表示及其存储和运算

/ 定义一个数据元素结构体学生,包含了三个元素// 学生姓名char sex;// 学生性别// 分数}Student;// 定义一个顺序结构体// 存储元素的内存首地址size_t cap;// 顺序表的容量size_t cnt;// 表中元素的数量}Array;

2024-07-26 13:17:54 538

原创 数据结构的逻辑结构和存储结构

数据元素之间除了同属一个集合外没有其它关系。集合是最简单的逻辑结构,其中的元素之间没有任何特定的顺序或关系。每个元素在集合中都是独立的,没有前驱或后继。集合中的元素通常是独立的个体,没有关联。集合的典型例子是数学中的集合概念。:数据元素之间存在一对一的关系,也被称为线性表,简称为表,最具代表性的就是数组、链表。线性结构是一种有序的逻辑结构,数据元素之间存在一对一的关系。每个元素都恰好有一个前驱和一个后继,除了第一个元素没有前驱,最后一个元素没有后继。线性结构可以用线性表、栈和队列等数据结构来表示。

2024-07-25 20:54:07 4741

原创 数据结构(什么是数据结构)

数据结构不是研究数值计算的,这是数学家应该研究的问题,数据结构是研究计算机存储、组织数据的方式问题的学科,数据结构会影响算法的效率,合适的数据结构可以带来更高的允许活存储效率。凭借一句话获得图灵奖的Pascal之父——Nicklaus Wirth,让他获得图灵奖的这句话就是他提出的著名公式:“这个公式对计算机科学的影响程度足以类似物理学中爱因斯坦的质能方程。

2024-07-25 20:35:12 387

原创 数据结构:图的介绍

图是一种比较复杂的数据结构,在线性表中数据元素之间仅有线性关系,每个元素只有一个直接前驱和直接后继(元素之间只存在一对一关系),在树形结构中元素之间有着明显的层次关系,每一层的元素只能和下层的多个元素有关系(元素之间存在一对多关系),而在图形结构中,任意两个结点之间都可能有关系(元素之间存在多对多关系)。图中的数据元素被称为顶点,一般使用V表示图的顶点的有穷非空集合。两个顶点之间的关系记作<v,w>,表示能从顶点v到达顶点w,也就是v能到w,但w不一定能到v,我们称v为弧尾或初始点,称w为弧头或终端点。

2024-07-25 09:22:00 346

原创 C语言中基本的数据类型

数据存储计算机中需要耗费存储空间(内存、硬盘),在编程语言中把数据按照使用范围、特点划分为不同的种类,解决什么问题使用什么类型的数据,这样可以节约存储空间、提高运算速度,这是程序员的基本功,对于嵌入开发这点尤为重要。c语言中数据分类两大类自建(程序自己设计的,如:结构、联合、类)和内建(C语言自带)。在说C语言不同的数据类型之前,先了解一下计算机中存储数据空间的大小单位。比特(Bit)是计算机储存数据的最小单位,是一个二进制位,只能存储0或1。

2024-07-20 17:17:34 408

原创 C语言的介绍

丹尼斯.里奇和肯.汤普逊于1971~1973年在贝尔实验室,在开发UNIX操作系统时,以BCPL语言为基础研发了一款高级编程语言,取BCPL的第二个字母作为名字,所以叫C语言。它是为了开发操作系统而研发的一款编程语言,它特别擅长控制硬件,所以在服务器、驱动编程、单片机、嵌入式使用较多。

2024-07-20 17:03:48 356

原创 二叉树的性质及二叉树基本遍历

先介绍一下二叉树,二叉树是数据结构中一种特殊的树形结构,也就是每个节点最多有俩个子树,即二叉树中不存在度大于二的节点(度表示一个节点的子树个数),而且二叉树有左右之分,顺序不能颠倒。二叉树又有俩种特殊的二叉树,即满二叉树和完全二叉树。

2024-07-20 13:03:42 941

原创 菜鸟学C语言:老鼠走迷宫小游戏

主要讲一下c语言中getch()函数,需要用到#include<getch()>可以读取到按下键的返回值,这一题主要用到上下左右的方向键的返回值,上为183,下为184,左为186,右为185。我们已知获取到老鼠的位置,根据函数getch()所获得的方向键的返回值,对老鼠所在的二维数组下标进行改变。并对改变后的位置进行显示,要用到一个函数system("clear")清空当前面板,在遍历二维数组进行显示。我们以1作为墙以'#'表示,0作为空白的路,2作为老鼠的位置以'#'表示,可以得到这么一张地图。

2024-07-06 10:36:23 274

空空如也

空空如也

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

TA关注的人

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