- 博客(26)
- 收藏
- 关注
原创 进程间的通信2.24
如果管道中有读端,管道中数据没有写满数据,则直接写入,如果管道中写满 数据,需要等到有数据读出才能继续写入。如果管道中有写端,有数据则直接读出,没有数据会阻塞等待直到有数据写 入,读出数据才能执行向下执行。1,由于进程间的通信没有共享空间,所以就需要管道,信号,消息队列,共享内存,信号灯,套接字等。如果管道中没有写端,有数据则直接读出,没有数据不会阻塞等待,直接返回。3,有名管道必须读写两端同时加入,才能继续向下执行,否则会阻塞等待。如果管道中没有读端,向管道中写入数据会产生管道破裂。
2025-02-24 18:19:28
279
原创 LINUX系统软件编程2.14
从终端接收两个文件的名字,将第一个文件中的内容拷贝到第二个文件中 例如: a.txt b.txt 最终: a.txt中的内容和b.txt中的内容保持一致。用户<----->shell<----->内核。4. 设备操作、即时通信使用文件IO。2. 文件IO是一种没有缓存的IO。8. 标准IO、目录IO都是库函数。1. 标准IO是一种有缓存的IO。3. 文件操作可以使用标准IO。5. 目录相关操作使用目录IO。6. 链接文件操作使用链接IO。7. 文件IO是系统调用。LINUX系统软件编程。
2025-02-14 20:17:40
102
原创 数据结构2.13
1. 一个二叉树第k层最多有多少个节点。1. 前序遍历(根左右)2. 中序遍历(左根右)3. 后续遍历(左右根)DFS:深度优先遍历。BFS:广度优先遍历。3.完全二叉树的创建,插入,遍历,删除。
2025-02-13 18:55:34
194
原创 数据结构2.11
3. 空栈:栈针指向要插入的元素的位置。4. 满栈:栈针指向栈顶元素所在的位置。1. 增栈:栈的增长方向自低向高。2. 减栈:栈的增长方向自高向低。栈和队列只允许在固定位置取出或者插入数据。2. 栈底:不允许入栈出栈的一端称为栈底。1. 栈顶:允许入栈出栈的一端称为栈顶。4. 出栈:将数据从栈顶位置取出。3. 入栈:将数据插入栈顶位置。5. 栈针:栈顶元素所在的位置。3. 入队:将元素插入到队列中。栈和队列是一种特殊的表状结构。4. 出队:从队列中取出元素。1. 队头:出队的位置。2. 队尾:入队的位置。
2025-02-11 18:25:15
238
原创 数据结构2.10
快指针走到末尾时,慢指针即停留在链表中间位置。4.不知道链表头结点的情况下删除链表中间节点。依次对后续节点采用头插法插入原链表即可实现逆序。1.判断链表是否有环:(解题步骤思想)走一圈回到相遇点,计数器的值即为环长。快指针走到末尾,慢指针刚好走到倒数第。快慢指针如果能够相遇即为有环链表。两个指针相遇的位置即为环入口位置。将后一个节点的数据覆盖当前节点。(3)如何找到环的入口位置?快指针走一次,慢指针也走一次。2.查找单向链表中间节点。一个指针从链表头开始走。一个指针从相遇点开始走。(1)判断是否有环?
2025-02-10 18:57:44
596
原创 数据结构2.8
链表倒置(链表逆序) 冒泡排序 选择排序。数组存储空间是连续的,数组的长度必须为有限元素。链表存储空间是不连续的,元素的上限没有限制。链表元素访问稍微复杂一些。数组元素的访问比较方便。
2025-02-08 19:35:37
202
原创 数据结构2.7
如果原来没值,就赋值为新值,如果原来有值保留原来的值。2. 在当前目录下查找makefile或者Makefile。makefile中要生成多个目标,需要设定伪目标。$^: 所有依赖的文件(中间以空格隔开)3. += 在原来的内容后面拼接新的内容。makefile依赖时间戳对文件做管理。生成伪目标使用:make 伪目标名称。7. makefile中的伪目标。5. makefile中的变量。要生成的目标文件:依赖的文件。3. makefile的使用。$<: 第一个依赖的文件。$@: 要生成的文件。
2025-02-07 21:17:45
156
原创 数据结构学习心得
数据量增长与程序运行时间增长所呈现的比例函数关系称为时间渐进复杂度函数也称为时间复。存储和操作数据对象的一种结构,用合理的数据结构能够减小程序的时间复杂度和空间复杂度。链表(单向链表、双向链表、循环链表、内核链表)fun.h : 功能程序代码头文件。main.c : 主函数程序代码。程序 == 数据结构 + 算法。fun.c : 功能程序代码。b 行号/函数名 设置断点。p 变量名 查看变量的内容。使用gdb软件调试代码。非线性结构(树、图)编译代码加入-g选项。s 进入函数内部调试。
2025-02-06 21:51:00
470
原创 2025.01.22 C语言指针及构造数据类型学习心得总结
结构体成员变量只能存放在内存地址为自身基本类型长度整数倍的内存单元中。结构体访问成员变量最终的类型由成员变量决定。结构体整体的大小必须为最大类型长度的整数倍。//判断字符串是否太乱了。//判断长度是否太短了。2. 结构体指针访问成员变量: ->//判断是否需要数字。//判断是否需要字符。1. 结构体变量访问成员变量:.struct 结构体名 {数据类型1 成员变量1;数据类型2 成员变量2;数据类型3 成员变量3;
2025-01-22 17:53:12
644
原创 2025.01.21学习C语言指针总结:
定义一个5个元素的数组,占40个字节的空间,每个元素是整形指针。1. 指针数组是数组,数组的每个元素是指针。二维数组用来存放字符串数组。指针数组用来操作字符串数组。
2025-01-21 18:17:16
301
原创 2025.01.20指针学习心得:
访问数组下标为n的元素的方式为:a[n] == *(a+n) == *(p+n) == p[n]3.数组的数组名类型理解为int *型,除以下两种情况:(1)sizeof运算(2)&运算。指针变量:是一个变量,占8个字节空间,存放指针(地址)的变量,有时也会简称为指针。地址传递:将实参的地址给了形参,形参是指向实参的指针,可以利用形参修改实参的值。2. 指针函数可以让函数的返回值作为下一个函数的参数,完成灵活的嵌套调用。指针函数:指针函数是函数,函数的返回值是指针。
2025-01-20 18:23:25
208
原创 【无标题】
inti=0;for(i=0;i<len;i++)return0;inti=0;for(i=0;i<len;i++)return0;inti=0;intj=0;for(j=0;j<len-1;j++)for(i=0;i++)return0;return0;
2025-01-19 18:10:15
304
原创 2025.01.15学习C语言心得:
5,全部初始化-------char str[ 6] = {"hello"};默认初始化--------char str[ ]={"hello"};局部初始化-------char str[6] ={0};6,每个字符串后都有一个‘\0’占一个字符空间,元素个数要能够存放下整个字符串且包含末尾的‘\0’;4,%c用于一个字符,%s用于一行字符串;
2025-01-15 19:09:31
139
原创 2025.01.14学习C语言心得:
int a[ ]={1,2,3} :说明数组元素有3个---int a[3]----------------------也称为默认初始化;数组的存储空间:每个元素所占空间 * 元素的个数-------len = sizeof(a) / sizeof(a[0]);:共有5个元素,但最后两个元素没有给值,所以就为{1,2,3,0,0};数据类型int 数组名a [元素下标数]:元素下标的范围是0到元素下标数-1;数组的类型必须一致,数组的元素个数必须是有限的;
2025-01-14 18:37:28
185
原创 2025.01.12学习C语言心得
4在计算机语言中,乘号(*)不能省略 例如:圆的面积公式为s = pi*r*r,不能写为pi r r(在数学计算中)3在逻辑运算符的使用时,例如与运算(&&)的应用时,若左边的值为0时,则不计算右边的值,将右边的值默认为0。6 在交换两个变量的数值时,应再取三个变量作为新的存储地,以防被将换的变量的原值被覆盖。1在运用scanf时,(1)不用加\n;则0<=num<=200的最终结果为1。应先判断0<=num 为1;在判断0<=num<=200时,再判断1<=200 为1;
2025-01-12 18:45:42
167
原创 2025.01.10学习C语言心得
(1)整型int---4字节又分为short--3(短整型),long--8(长整型)以及他们的有无符号的区别;(2)float(单精度浮点型)----4字节,double(双精度浮点型)---8字节。(7)字符串常量中,字符串的末尾一定有\0(占一个字节)字符,用来标识字符串结尾,所以在计算字符串的长度时,需算上\0的字节数。3.掌握并运用了C语言中的不同的数据类型:整型(int),浮点型(float double),字符型(char)2.巩固了./a.out 的运用;学到了负数的原码反码补码;
2025-01-10 18:57:36
110
原创 2025.01.09学习linux心得
例如:ls , man ls , ls-l , mkdir(创建空文件夹) , rmdir(删除空的文件夹) , touch(创建新的普通文档) , rm(删除普通文件) , cd的应用(进入某个目录),Desktop(桌面) ,cp(完成文件的拷贝 注意:在拷贝文件夹时,需在其后加 -rf) , mv(完成文件的移动,也能改文件名)等。在C语言的应用中,总是忘记使用a和i来进入插入模式,且使用时对于下标看的不仔细。普通用户(名不固定,但不能为root)家目录:/home/linux。
2025-01-09 19:25:38
154
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人