- 博客(36)
- 收藏
- 关注
原创 Linux项目自动化构建工具-make/Makefile使用
Linux项目自动化构建工具-make/Makefile介绍以及文件的ACM时间
2023-11-05 12:09:38 218 1
原创 Linux权限
下面我们来详细介绍一下文件的属性和权限。可以看到从左到右有很多信息,下面我用一张图来解释这些都是什么意思。-:普通文件,源代码,可执行程序,库等d:目录文件c:字符设备文件b:块设备文件l:链接文件(链接文件就是windows的快捷方式,指向一个路径的文件)p:管道文件Windows上对于文件类型的区别是看文件的后缀,所以Linux系统本身对于文件类型的区分是根据文件属性第一个字符来看的,所以对于文件名的后缀Linux系统并不关心,但是不代表Linux上安装的软件不关心。
2023-10-22 14:14:02 394
原创 结构体的成员偏移量(offsetof)
C语言的一个语法,能够输出结构体内成员的偏移量,就是把0强转成结构体类型指针然后指向结构体成员,再加个&,就能输出该成员的偏移量了。比如这里有一个task类型的结构体,我想查看其成员名字为a的偏移量就可以这样。(task*)0就是把0强转成task类型的结构体指针,然后指向我想查看的成员((task*)0)->a,最后在最外层套一个括号加一个&就好。这里的作用是,假如我只有a的真实地址,那么我可以通过a的偏移量算出AA的真实地址。
2023-10-11 14:59:36 196 1
原创 C++ stack queue模拟实现
STL中有6大组件,我们前面讲的string/vector/list是,还有,以及(比如find,swap,reverse,sort,merge函数),和会在后面讲解,下面讲的stack和queue是。
2023-09-24 21:21:25 159
原创 C++ list模拟实现
模拟实现了vector之后,现在来试试难度更高的list,list是一种双向循环带头链表,由一个个节点组成,每一个节点都有一个指针指向前一个和后一个节点,相比于vector和string的迭代器是原生指针,list的迭代器实现起来更有难度,在此基础上还要写反向迭代器。以下是list的大体框架和成员变量。
2023-09-24 10:26:30 135 2
原创 C++ vector模拟实现
继上次写完string之后,可以写一个vector练练手以及熟悉其底层。vector是一个顺序表,相比普通数组不同点在于顺序表的数据必须是连续存放的。
2023-09-23 21:34:32 185 1
原创 基础数据结构-----二叉树
树一种非线性的数据结构,由各个节点构成的一个类似树型的图像,,下面是树的各种概念。:一个节点含有的子树的个数称为该节点的度;如上图:A的为6:度为0的节点称为叶节点;如上图:BCHI...等节点为叶节点:度不为0的节点;如上图:DEFG...等节点为分支节点:若一个节点含有子节点,则这个节点称为其子节点的父节点;如上图:A是B的父节点:一个节点含有的子树的根节点称为该节点的子节点;如上图:B是A的孩子节点:具有相同父节点的节点互称为兄弟节点;如上图:B。
2023-08-23 17:26:56 39
原创 详解C语言自定义类型(结构体,位段,枚举,联合)
我们已经声明好了一个结构体变量,就可以像定义int,char类型的变量一样来定义结构体变量。int price;//定义了int类型的变量achar b;//定义了char类型的变量bfloat c;//定义了float类型的变量c//定义了struct Book类型的变量dreturn 0;当然也可以在声明完变量之后定义结构体变量。int price;//定义了struct Book类型的变量d下面是结构体的初始化,以及结构体嵌套的初始化。
2023-04-04 18:37:09 502 29
原创 数据在计算机中的存储
在编程里,数据存是存放在变量里的,而变量又有许多类型,但我们只知道什么类型有几个字节,比如int是整形数据,存放整数,占4个字节,却不知道数据在计算机里是怎么存储的。在C语言里整形和字符的存储是类似的,而浮点型(有小数)数据的存储却有很大不同。
2023-03-14 21:32:48 597 6
原创 电脑二进制存储的原码,反码,补码
1.正数的原反补码相同2.负数原反补码不相同,原码取反(除了符号位),再加1就是补码。3.二进制转换成十进制看的是原码,负数的补码或者反码需要转换成原码。4.负数补码取反再加1也可以得到原码。
2023-03-14 13:33:18 657 3
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人