自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 嗯嗯嗯嗯嗯

define U4_MAX (UINT_MAX) //unsigned int 最大值。printf("当 n 为偶数时,计算 1/2 + 1/4 + ... + 1/n\n");printf("当 n 为奇数时,计算 1/1 + 1/3 + ... + 1/n\n");printf("序列和为: %.6f\n",fl64_t_result);printf("请输入一个1到%u之间的正整数:", U4_MAX);

2025-09-11 16:45:35 346

原创 51单片机学习记录

此特性的应用范围包括HVAC环境控制,建筑物、设备或机械内的温度检测,以及过程监视和控制中的温度检测。当用户按下或释放按键时,由于机械弹性的作用,会产生短暂的不稳定接触,称为抖动。引脚输出电平为0,对应LED灯点亮,引脚输出电平为1,对应LED灯熄灭。设置REN = 1,允许串行接收。根据原理图可知,P1引脚控制数码管的段选,P1的低4位控制4个数码管的位选(即控制哪个数码管亮,哪个数码管灭)将TMOD.7 TMOD.6 定时器1的M0,M1 置0,表示打开定时器1,将定时器1/计数器1用作定时器。

2025-03-17 11:15:20 1093 2

原创 常见代码(排序、链表、字符串操作...)

【代码】常见代码(排序、链表、字符串操作...)

2025-03-14 14:36:27 112

原创 linux学习之网络编程

OSI七层模型 TCP/IP 四层模型。传输层 ----> 传输层。网络层 ----> 网络层。表示层 ----> 应用层。数据链路层 ----> 网络接口层。CS 发送必要资源。

2025-01-28 19:15:00 1748

原创 共享内存 shm

多线程之间数据交互,匹配运行速度的快慢(多线程+链表+队列)。速度产生快使用慢,可以使用循环覆盖队列。key ---- 申请对象 -----映射对象 ---- 读写对象 ----撤销映射 ---- 删除对象。ipcd -m 删除共享内存。几个命令:ipcs -a 查询共享内存,信号量集,消息队列。删除对象(修改共享内存属性,可以删除指定的共享内存对象)cmd IPC_RMID 删除对象的宏。没有写阻塞:写入长度大于内存长度,越界。没有读阻塞:为空的话,读到无效数据。

2025-01-27 10:45:00 356

原创 IPC 进程间通信

2、给自己发送信号:raise(int sig) == kill(getpid(),int sig)打开:int fd_read = open("./fifo",O_RDONLY)1、给指定进程发送信号:kill(pid_t,int sig)创建----打开-----读写------关闭-------卸载。read 0:写端关闭,如管道没有内容,read 0。读端存在:一直向管道中写,超过64G,写阻塞。写端存在:读管道,管道为空,读阻塞。fifo:有文件名称的管道。管道破裂:读端关闭,写管道。

2025-01-26 11:02:10 391

原创 线程控制:互斥与同步

无名信号量:线程间通信有名信号量:进程间的通信阻塞:sem = 1 进行sem = sem - 1;sem = 0 阻塞等待。

2025-01-26 10:27:39 406

原创 Linux学习之IO的多路复用

1、定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力2、作用:处理多条事件流中的事件3、原因:CPU单核同一时刻只能做同一件事COU的时分复用(线程和进程):创建成本、切换不同线程进程的成本、资源竞争IO的多路复用:单线程、单进程处理多个事件流。

2025-01-23 21:28:21 376

原创 linux下的线程

第三个参数是指向指针函数的函数指针,本质上就是函数的名字(回调函数)(执行空间)第二个参数,就是线程结束时返回的状态,可以说就是pthread_exit()中参数的值。第二个参数是线程属性,默认是NULL属性。创建 ----> 空间操作 ------> 资源回收。线程可以说是轻量级的进程,一般是一个进程中的多个任务。2、线程只具有一部分的私有资源,进程间只有私有资源。子线程自行退出,退出时返回参数中的状态。结束一个进程,参数是要结束的线程的id号。获取当前线程的线程id。线程:系统中最小执行单元。

2025-01-15 21:16:10 666

原创 Linux下的进程

每一个程序执行的过程中,都会去分配内存资源,调度CPU,整个过程就是一个进程。进程是动态的,程序执行过程中,会有进程的创建、调度、消亡。2、exit(),执行io库的清理工作,关闭流以及文件,清理函数。子是父的副本,子获得父的数据段,堆,栈,正文段共享。1、程序是静态的,存储在硬盘中,是数据的集合。3、 程序没有状态的变化,进程会有状态的变化。一个进程可以运行一个或多个程序。6、一个程序可以多次执行,变成多个进程。2、程序是永存的,进程是暂时的。4、程序不能并发,进程可以并发。2、孤儿进程,父进程先消亡。

2025-01-13 22:01:10 259

原创 对目录的操作

sprintf(new,”%s/%s“,path,name)可以用来将路径和文件名拼接起来。2、strerror()打印出错码对应的错误信息(出错码只要一出错系统就会有)3、error () 打印对应的出错原因和用户输入字符串并退出。fchdir() 切换路径,但是不会在终端中表现。秒>自定义时间表示方法 loctime()closedir() 关闭目录。opendir() 打开目录。getcwd() 得到路径。mkdir() 新建目录。秒>时间 ctime()获取秒 time()

2025-01-12 21:40:15 246

原创 文件IO的操作

方便用户使用系统功能而对外提供的一组系统函数,称为系统调用,其中有个文件IO;文件IO一般是对设备文件进行操作,也可以对普通文件进行操作。2、全缓冲:主要用于文件读写,标准IO操作 4096k。文件IO > 标准IO:FILE *fdopen()标准IO > 文件IO:int fileno()3、无缓冲:用于出错信息的输出 不缓存直接刷新。2、文件IO操作对象不是文件流而是文件描述符。1、文件IO没有缓冲区,标准IO有缓冲区。1、行缓冲:多用于人机交互 1024k。open() 打开文件。

2025-01-12 21:22:12 187

原创 标准IO,文件输入输出操作

fread( , , , )、fwrite( , , , ):自定义大小,以二进制的形式。fgets( , , )、fputs( , , ):一行一行的写入读取。具体参数的类型和代表的含义,通过 man 函数名 进行查询。fgetc( )、fputc( , ):单个字符的写入读取。man 2 xx :查看对应xx对应的系统调用函数。man 3 xx : 查看xx对应的标准库函数。

2025-01-07 20:27:08 181

原创 linux系统之shell编程、make

3、-gt 大于 -lt 小于 -ne 不等于 -eq 等于 -ge 大于等于 -le 小于等于 -a and -o or。$3:以此类推:传入脚本的的三个参数..........1、“ ” 打印字符串,遇到$变量则答应变量中的值。2、‘ ’ 打印字符串,遇到$变量则原样打印。3、` ` 将中间的字符串按照命令打印。PWD:当前所在的工作路径。if [ 条件 ]$1:传入脚本的第一个参数。$2:传入脚本的第二个参数。if [ 条件 ]

2025-01-06 20:05:32 316

原创 数据库基础知识(建立线性表,线性表的增删改查)

【代码】数据库基础知识(建立线性表,线性表的增删改查)

2024-12-30 20:06:54 191

原创 枚举 、位运算、typedef、malloc

一枚一枚列举、目的:提高代码可读性定义:enum 枚举类型名常量的值 //名字 用逗号隔开;变量的定义:enum 枚举类型名 变量名 = {};

2024-12-28 18:48:53 208

原创 指针处理二维数组(代码篇)

【代码】指针处理二维数组。

2024-12-28 13:30:00 177

原创 二级指针(代码篇)

【代码】二级指针(代码篇)

2024-12-28 10:30:00 109

原创 结构体 and 共用体

struct 结构体名成员列表;struct //定义结构体类型的关键字结构体名 //结构体类型的一个名称成员列表 // 描述该结构体包含了那些数据成员列表的书写,格式和定义变量一样 (数据类型 标识符)struct 结构体名struct 结构体名 变量名;struct 结构体名}变量名;struct}变量名;注意:第3种方法适合只用一次的结构体变量,因为不能用它在定义其他的结构体变量了1、共用体初始化,默认给到第一个成员。

2024-12-27 21:06:24 322

原创 结构体实现学生管理系统(代码篇)

【代码】结构体实现学生管理系统(代码篇)

2024-12-27 20:32:56 144

原创 指针之整型一维数组的处理(代码篇)

【代码】指针之整型一维数组的处理。

2024-12-27 15:30:00 233

原创 如何判断大小端(代码)

【代码】如何判断大小端。

2024-12-27 09:45:00 156

原创 字符型数组处理(代码篇)

【代码】字符型数组处理。

2024-12-27 02:15:00 141

原创 指针升级篇

char * pstr[3] //指针类型的一维数组,本质是数组,其中元素的类型是指针类型。---------&s[0]的数据类型是 char (*)[10]其中 int (int m, int n) 去掉标识符,剩下的是类型,这是函数的类型。int (*p)[n] ---- int (*)[n] //数组指针。s[m][n]------s[0]的数据类型是 char[m]形参形式:int (*p)(int , int);

2024-12-26 22:09:17 245

原创 代码之函数篇

函数之找最大的数组元素。

2024-12-26 21:15:16 137

原创 代码之一维数组

【代码】代码之一维数组。

2024-12-26 21:08:08 235

原创 指针操作数组

快速排序:step1:找一个基准位置,一般把数组首元素的位置作为基准位置;step2:从右向左找到第一个比基准位置上的数据小的值;step3:从左向右找到第一个比基准位置上的数据大的值;step4:将找到的位置上的值交换;step5:重复step1~step4;step6:当begin和end位置相遇的时候,将相遇位置上的值和基准位置上的值交换;step7:比基准数据小的一半继续快速排序,同样,比基准数据大的一半也继续进行快速排序;指针操作字符型一维数组:char *

2024-12-25 21:38:57 322

原创 指针之代码篇

【代码】指针之代码篇。

2024-12-25 20:56:32 228

原创 指针之快速排序

【代码】指针之快速排序。

2024-12-25 11:13:02 130

原创 指针基础知识

指针变量能进行的运算:p + n;--p(p、q都是指针变量且是同类型)(2):地址传递 ---- 实参地址值 传给 形参指针变量。数组名从值的角度:代表数组首元素的地址,是一个地址常量,不能进行++或者--p是一个指针变量,变量可以进行++或--,表示下一个或上一个基类型数据的地址。(1)基类型:指针所指向的一片空间中存放的数据的类型;(2)通过指针类型的形参带出。(2)* :定义时,表示定义的是一个指针类型;条件1:修改谁,就把谁的地址传到函数中。*p 间接访问p指向空间的数据。

2024-12-24 21:05:03 195

原创 C语言之预处理知识整理

宏的作用域:从定义开始,到当前文件结束,也可以使用#undef 宏名,手动终止其作用域。如果宏值出现在“字符串”中,预处理时,不会将当中的宏名替换成宏值。使用宏定义,增加代码可读性,可以做到一改全改,避免大量修改代码内容。区别:使用“文件名”,预处理阶段会现在当前路径下寻找目标文件,找不到再到默认路径寻找。如果标识符没有被定义,表示假,将程序段2展开到.文件中。说明:如果标识符被定义了,表示真,将程序段1展开到.i文件中。说明:如果标识符没有被定义,将程序段1展开到.i文件中。

2024-12-23 20:19:55 324

原创 数组在函数中的应用

总结:static 修饰局部变量 将变量放到静态区 ,延长了生命周期static 修饰全局变量,限定变量在本文件中static 修饰函数,和修饰全局变量作用一致static的意义:保护数据,防止命名冲突。

2024-12-22 16:00:37 342

原创 二维数组的应用

7、函数定义位置,可在main函数之前也可以在main函数之后,在之后的话,需要在使用前声明,函数头+;5、函数返回值如果与函数要带出的结果类型不同,以返回值的类型为准。8、函数调用时,实参给到形参-----值传递,将实参的值给到形参。初始化:全部初始化,按行初始化,部分初始化。形参设计void空类型。3、如果没有返回值,类型说明符设计为void空类型。1、实参与形参个数相同,类型匹配,一一对应。4、函数返回值类型不写,默认int类型。9、嵌套调用,在函数中调用其他函数。6、main函数是程序的入口函数。

2024-12-19 20:12:36 155

原创 数组知识点整理

/常量表达式 : 必须是一个整型常量表达式,表示数组中相同类型的数据的个数,即长度。引用时的[]代表数组下标的运算,下标是一个数值,表示相对于第一个元素的偏移量。数组名:从类型的角度,表示数组类型;从值的角度,代表数组首地址的值;// []:在定义时,表明此时定义的是一组数组数据。定义的语句中,去掉数组名,剩下的部分也代表数组类型。//类型说明符 : 说明数组存放什么类型的数据。数组 : 一组相同数据类型的变量的集合。数组的特点:连续性,单一性,有序性。数组元素的引用: 数组名[]

2024-12-18 09:04:10 233

原创 C语言之条件语句、循环语句

while(表达式);2、goto 语句构造 的循环,不能使用break, continue。注意:while语句最少执行0次,do while 语句最少执行1次。a.只会匹配一次,匹配成功,执行对应语句,如没有break,表达式3: 使循环趋于结束的语句。while 语句: while(表达式)for (表达式1;b.switch后,必须是整型表达式。表达式2:表达式3;表达式1:循环的初始条件。表达式2: 循环判断条件。//表达式1为真,执行表达式2。//表达式1为假,执行表达式3。

2024-12-16 22:22:07 173

原创 输入输出知识点整理

/%[辅助控制符]d %#o, %#x, %md, %0md, %-md, %.nf, %,ng, %m.nf。//浮点型 %f, %e, %g //都是转换为对应的小数,%lf, %le, %lg匹配的是double类型。//整型 %d, %u, %o, %x,%X,%ld, %lu, %llu。//整型 %d, %u, %o, %x,%X,%ld, %lu, %llu。//浮点型 %f, %e, %E, %g。地址列表:一块空间的值,提供变量的地址&a。

2024-12-13 19:36:15 356

原创 运算符和表达式知识点学习

CPU主要有运算器,控制器,寄存器,通过总线(控制总线,数据总线,地址总线)传输数据,传输数据的多少由宽度决定,其中数据中线的宽度决定传输数据的多少,地址总线的宽度决定寻址的范围。// 长类型转为短类型,高位截断(有符号的符号位扩展,无符号的高位补0)const类型的变量叫左值,但是由于const定义的变量不允许被改变,因此,const定义的变量不能放在=的左边。整除:a/b //两个整数相除的结果;表达式1,表达式2,.......,表达式n // 从左至右,最后一个表达式的结果。

2024-12-12 20:06:28 666

原创 数据类型知识点整理

2024-12-11 21:19:55 109

原创 Linux常用命令

如果目标目录文件存在,则拷贝到目标文件下。如果目标文件是目录,且目标目录存在,则将源文件移动到目标目录下。注意:如果拷贝的是目录文件需要加上-r表示递归,即"cp 目录文件 目标目录文件 -r"如果目标文件是目录,但是目标文件不存在,则改名为目标文件。(3)ls -l 目录:查看该目录下所有文件的属性信息。(3)拷贝目录文件:cp 源目录文件 目标目录文件。(1)cp 源文件 目标文件:注意源文件必须存在。(2)mv 路径/源文件 路径/目标文件。(2)cp 路径/源文件 路径/目标文件。

2024-12-10 18:52:49 369

空空如也

空空如也

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

TA关注的人

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