- 博客(21)
- 收藏
- 关注
原创 Linux环境编程——①系统文件IO、文件属性、文件夹
Linux中一切皆文件(Linux是一个文件系统)struct file这个结构体是在文件被操作时会创建的。struct file_operations这个结构体中的成员几乎都是函数指针,用于做统一化管理。
2024-09-13 20:15:20
477
原创 C语言基础——⑩②预处理和位运算
预处理就是在源文件(如.c文件)编译之前,所进行的一部分预备操作,这部分操作是由预处理程序自动来完成;当源文件在编译时,编译器会自动调用预处理程序来完成对预处理指令的解析,预处理指令解析完成才能进入下一步的编译过程。gcc 源文件 -E -o 程序名[.后缀]#define 宏名 常量数据;#define 宏名(参数列表) 参数表达式/*** 宏定义——带参数*/int main()return 0;#define命令出现在程序中函数的外围,宏名的有效范围为定义命令之后到本源文件结束。
2024-09-06 11:16:09
961
原创 C语言基础——⑩③数据结构——③二叉树和BST
树是一种非线性结构,其严格的数学定义是:如果一组数据中除了第一个节点(第一个节点称为根节 点,没有直接前驱节点)之外,其余任意节点有且仅有一个直接前驱,有零个或多个直接后继,这样的一组数据形成一棵树。这种特性简称为一对多的逻辑关系。即用于描述具有层次关系,类似组织架构关系的一种数据结构。
2024-08-30 20:06:51
609
原创 C语言基础——⑩③数据结构——①顺序表、单链表和双向链表
顺序存储中,由于逻辑关系是用物理位置来表达的,因此从上述示例代码可以很清楚看到,增删数据 都非常困难,需要成片地移动数据。顺序表对数据节点的增删操作是很不友好的。当数据节点数量变化剧烈时,内存的释放和分配不灵活。所谓的循环,指得是将链表末尾节点循环地指向链表表头。比如,单向链表变成循环链表的示意图如下所示:循环链表的操作跟普通链表操作基本上是一致的,只要针对循环特性稍作修改即可。
2024-08-27 19:51:53
713
原创 C语言基础⑩——构造类型(结构体)
结构体类型:struct;共用体类型(联合体):union;枚举类型:enum;整数型和字符型分有符号signed和无符号unsigned,默认是有符号,有符号可以省略关键字signed。structstruct 结构体名数据类型1 成员名称1;结构体中定义的变量,我们称之为成员变量。方式1:常规定义(只定义类型)---推荐(定义的结构体只是模板,无实际数据)struct Student//常规定义,命名结构体int num;//学号//姓名char sex;//性别。
2024-08-15 22:33:22
1141
原创 C语言基础⑨——指针
系统为了内存管理的方便,将内存划分为一个个的内存单元(1个内存单元占1个字节),并为每一个内存单元进行了编号,内存单元的编号称为该内存单元的地址。一般情况下,我们每一个变量都是由多个内存单元构成的,所以每个变量的内存地址,其实就是这个变量对应的第一个内存单元的地址,也叫首地址。变量指针变量地址称为该变量的指针。变量地址往往是指变量在内存中的第一个内存单元的编号(首地址)。指针变量存放其他变量地址的变量。指针变量中存放“谁”的地址,就说明该指针变量指向了“谁”。:指针运算符数据类型 *变量列表;
2024-08-13 22:34:57
1092
2
原创 C语言基础⑧——函数
返回类型 函数名(形参列表) --> 函数头 | 函数首部函数体语句;(简称为函数体) --> 函数体,整个{}包裹的内容包括返回值都属于函数体利用全局变量可以实现一个函数对外输出的多个结果数据;利用全局变量可以减少函数形参个数,从而降低内存消耗,以及因形参传递带来的时间消耗。/*外部变量p,q*/float f1(int a) /*定义函数f1*/{ int b,c;char c1,c2;/*外部变量c1,c2*/char f2 (int x, int y) /*定义函数f2*/
2024-08-09 12:00:00
2390
原创 C语言基础⑦——数组
类型说明符 数组名[数组容量]二维数组本质上是一个行列式的组合,也就是说二维数组是由行和列两部分构成。二维数组数据是通过行列进行解读。二维数组可被视为一个特殊的一维数组,相当于二维数组又是一个一维数组,只不过它的元素是一维数组。
2024-08-05 00:01:07
1832
原创 C语言基础⑥——循环结构
for语句使用语法规则上,降低/避免因为忘记循环条件更新操作,而引起的产生无限循环的几率;应用场合:for语句往往应用于循环次数实现可以确定的场景。
2024-07-30 23:08:22
1741
原创 C语言基础⑤——分支结构程序设计
如果只需要一个判断结果,使用单分支;如果需要两个判断结果,且只能有两个判断结果,使用双分支;如果需要判断N个结果中的某几个,或者所有,使用多分支。
2024-07-29 22:13:16
1223
原创 C语言基础④——缓冲机制及函数、字符类型
缓冲区又称为,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间, 这些存储空间用来缓冲输入 或者输出的数据,这部分预留的空间叫做缓冲区。缓冲区根据其对应的是 输入设备还是输出设备,分为和。
2024-07-27 20:50:57
803
原创 C语言基础-总
1.结构体:struct;2.共用体:union;3.枚举:enum;缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间, 这些存储空间用来缓冲输入 或者输出的数据,这部分预留的空间叫做缓冲区。缓冲区根据其对应的是 输入设备还是输出设备,分为输入缓冲区和输出缓冲区。
2024-07-27 20:50:13
865
原创 C语言基础③
缓冲区又称为缓存,它是内存空间的一部分。也就是说,在内存空间中预留了一定的存储空间, 这些存储空间用来缓冲输入 或者输出的数据,这部分预留的空间叫做缓冲区。缓冲区根据其对应的是 输入设备还是输出设备,分为输入缓冲区和输出缓冲区。
2024-07-25 19:51:32
863
原创 Linux④
和Windows的网段不一样,是由虚拟网卡分配网段和IP,并且能够与Windows系统一样可以连接到互联网。和Windows共享一个网段,并且能够与Windows系统一样可以连接到互联网。缺点 :占用路由器的IP,如果路由器的载荷过大,网络会掉线。和Windows的网段不一样,不能连接网络。好处 :不占用路由器的IP;一起使用,可列出较完整的信息;:显示用户为主的进程状态;好处 :网络稍微会快一点;缺点 :网络会稍微慢一点;:只显示监听状态的套接字;:显示n次应答后停止;好处 :数据安全;
2024-07-19 11:47:51
993
原创 Linux③
gzip可以压缩文件夹中的所有文件,bzip2不可以;与gzip相比,bzip2有更高的压缩效率二者不可混用,主要通过压缩文件的扩展名区分。*.tar: 用 tar -xvf 解包;*.gz: 用 gzip -d 解压缩;*.tar.gz: 和 *.tgz 用 tar -xvzf 解压;*.bz2: 用 bzip2 -d 解压;*.tar.bz2: 用 tar -xvjf 解包;*.zip: 用 unzip 解压;
2024-07-18 17:30:52
825
原创 Linux②
Ctrl + Alt + T :打开终端;Ctrl + L :对终端当前屏幕进行清空,等价于clear指令;方向键上/下 :在终端通过方向键,从历史命令中获取历史命令;Tab :对命令行中的命令进行补全,注意,如果前缀在同级中有多个对应文件或文件夹,会失效;Ctrl + C :强制退回到命令行状态(一般用于命令输错时)。
2024-07-17 20:21:09
892
1
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人