自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 论函数指针

需要指定:被指向函数的返回值类型被指向函数的参数类型列表(不需要参数名)

2025-08-20 11:59:37 293

原创 C++_智能指针

unique_ptr属于独占式智能指针,一个unique_ptr同一时间只能指向一个对象,当指针超出作用域或被重置时,指向的对象会被自动释放。

2025-08-13 17:10:39 290

原创 ARM编程模型、指令集、ARM汇编语言程序设计

在之后的演示当中,我们大多数将采用ARM指令集。

2024-09-03 22:40:08 827

原创 双向链表的删除和销毁、内核链表

错误代码实例在错误代码中,先将pTmpNode的前后节点相连(此时并没有和两个节点断开连接,如果按照节点连接的指向,依旧可以找到前后两个节点,因此在代码中选择将pTmpNode向后移动),随后让pTmpNode节点向后移动,错误之处在于,经过处理的pTmpNode的后一个节点的前一个已经变成了pTmpNode的前一个节点,在释放空间时,释放的已经不是我们所指定的空间。正确代码。

2024-08-29 20:55:33 750

原创 利用链表快慢指针对链表进行查找

快指针每次移动两个位置,慢指针每次移动一个位置,当快指针到达末尾,慢指针所指的位置就是中间节点(在快指针一次循环中移动两个位置时,移动一个位置就需要判断该位置是否为末尾位置)

2024-08-28 20:02:47 333

原创 时间复杂度、数据结构、顺序表和链表

部分程序运行所消耗的时间与其数据量的大小有着密切的关系,也有一部分的运行时间和数据量大小的关系微乎其微。以下就是时间复杂度的降序排列。2.1.1顺序表:顺序表在某种程度上与数组有相同的地方,比如顺序表的大小和数量是有限的,并且因为顺序的存在,顺序表是连续的。单项链表:链表的节点中存储节点数据和下一个节点的地址,即便链表之间的地址不连续,也可以通过头节点访问到后面节点存储的数据。以下的代码是顺序表的定义,定义一个结构体,其中包含顺序表存储的数据的首地址,存储数据的个数和最大能够存储的数量。

2024-08-27 21:52:44 276

原创 数据库(sqlite)、数据库编程

数据库(database)是用来组织、存储和管理数据的仓库。为了方便管理互联网世界中的数据,就有了数据库管理系统的概念。用户可以对数据库中的数据进行新增、查询、更新、删除等操作。

2024-08-22 22:12:45 877

原创 0820【网络编程】

select不再阻塞,同时select会将产生事件的文件描述符留在集合中,而把没有产生事件的文件描述符从。监听文件描述符集合,将所有要监听的事件加入集合中,使用select监听所有事件,当集合中有事件发生,将一个文件描述符设定为异步IO,当IO有事件发生时,内核会向用户层发送SIGIO信号提醒用户层处理事件。集合中踢出,所以留在集合中的文件描述即为产生事件的文件描述符,对其处理即可。功能:判断fd是否仍在文件描述符集合中。功能:将fd加入文件描述符集合中。功能:将文件描述符集合清0。

2024-08-20 22:10:40 309

原创 0815网络编程

子网掩码展开成二进制,1对应的部分就是IP地址的网络位,0对应的部分就是IP地址的主机位。子网掩码:每个IP地址都会搭配一个子网掩码,用来区分IP地址的网络位及主机位。私有地址:192.168.0.0 ~ 192.168.255.255。私有地址:10.0.0.0 ~ 10.255.255.255。B类:128.0.0.0 ~ 191.255.255.255。A类:1.0.0.0 ~ 126.255.255.255。子网掩码:255.255.255.0。网络位:IP地址所属的网段(局域网的编号)

2024-08-15 21:05:34 895

原创 0814消息队列、共享内存、信号灯

1.ipcs查看所有ipc对象的信息2.ipcrmipcrm -q/m/s 消息队列ID/共享内存ID/信号灯ID。

2024-08-14 20:09:19 562

原创 0811软件编程

从终端输入: SIGINT ctrl+c SIGQUIT ctrl+\ SIGTSTP ctrl+z9号和19号信号 SIGKILL 进程结束 SIGSTOP 进程挂起SIGSEGV:表示内核操作内存错误SIGUSR1:用户可以使用该信号实现通信SIGCHLD:表示该进程有一个子进程结束了SIGPIPE:表示管道破裂SIGIO:表示IO事件发生。

2024-08-11 19:40:52 733

原创 0807软件编程

原型:pid_t waitpid(pid_t pid, int *wstatus, int options);功能:回收指定的子进程空间参数:pid:要回收的子进程的pidwstatus:回收状态的指针options:回收选项0 阻塞回收:在子进程结束之后回收WNOHANG:非阻塞回收,立即回收返回值:成功:返回回收的子进程的pid失败:返回-1。

2024-08-07 21:35:01 904

原创 软件编程0806

程序:保存在磁盘空间中的的一段代码的集合进程:是一个程序动态执行的过程,包括进程的创建、调度和消亡的过程。

2024-08-06 20:13:48 678

原创 0802软件编程

【代码】0802软件编程。

2024-08-02 22:12:47 260

原创 0801[软件编程]

在程序运行出错时,可以在头文件加上#include <errno.h>在报错的位置输入printf("%d",errno);

2024-08-01 20:37:00 499

原创 0731【软件编程】

如上图,如果将图中的char name[32]中的32进行修改,printf将会产生乱码。因为在b,txt中是以一个结构体为44个字节的标准fwrite,但如果修改fread的读取字节,就会改变结果。向流中写入nmemb个对象,每个对象size个字节,在ptr指向的空间中存放。从流中读取nmemb个对象,每个对象size个字节,在ptr指向的空间中存放。ptr:写入数据空间的首地址。nmemb:写入对象的个数。成功返回实际写入对象的个数。nmemb:写入对象的个数。成功返回实际读取对象的个数。

2024-07-31 21:01:53 535

原创 0727[C语言]

1.函数体内部的局部变量会随函数结束被回收,可以考虑存放到堆区空间中避免随函数结束回收。当使用strcat、strcpy、strcmp函数时可能会产生内存越界。应该用strncat、strncpy、strncmp函数替代。注意:操作指针时,注意指针指向的空间是否存在?4.单向链表、双向链表、内核链表、循环链表。如果成功,返回指向申请空间的指针。申请size个字节的堆区空间。size:申请空间的大小。1.数组是有限个元素的集合。申请的堆区空间没有被释放。2.数组的空间必须连续。1.链表空间不需要连续。

2024-07-28 23:40:26 345

原创 0726【C语言】

struct 结构体名 { 数据类型1 成员变量1; 数据类型2 成员变量2; 数据类型3 成员变量3; ... };如下,定义结构体名为student 结构体变量的定义 注意:变量类型为struct student!结构体变量的初始化 1.全部初始化 2.局部初始化 . :结构体变量类型访问成员变量 -> :结构体指针类型访问成员

2024-07-26 22:31:54 986

原创 0725[C语言]

如下图,我们在main函数外编写函数fun,定义一个函数指针指向fun函数,在函数jisuanqi中我们便可以把函数指针当作参数进行传递,在main函数中就可以调用函数jisuanqi,而jisuanqi中的一个参数就是函数fun。而在图二中传递的是数组指针类型,因此pdst和psrc是指针类型,当他们做自加运算后,就会移动指针指向数据类型个单位长度,图中是char型,所以移动一个字节。指针函数的本质是函数,函数的返回值是指针类型(注意:函数的返回值不能是局部变量的的地址)

2024-07-25 21:52:44 243

原创 0724[c语言]

在上图中,主要的思想为数组的数组名是指向数组第一行元素的指针,*会让类型降级,&让类型升级。

2024-07-24 21:12:48 286

原创 0723【C语言】

1.数组的数组名a是指向数组第一个元素的指针常量。指针[n] == *(指针 + n)3.C语言中所有指针均可以使用[]访问空间。const == readonly 只读。数组的数组名是指向数组第一个元素的指针。指针用来操作数组中的数据。3.一维字符型数组和指针的关系。

2024-07-23 19:41:32 165

原创 0722【C语言】

2.当运算符的优先级相等时,单目+三目运算符从右至左开始结合。64位操作系统中 所有类型指针变量占8个字节。补充:1.32位操作系统中 所有类型指针变量占4个字节。

2024-07-22 21:03:46 220

原创 0720【c语言

在当前目录下查找stdio.h,如果当前目录找不到则在系统目录/usr/include目录下查找头文件。3.2 int fun(int arry[],int len):可以操作不同长度的数组。递归函数:函数定义时调用函数本身1.递归一定要有结束条件 2.避免深层次的递归。带参宏可能改变运算符的优先级!2.带参宏没有参数类型、返回值、传参的概念。3.带参宏是在程序编译阶段加载到程序中。1.函数有参数类型、返回值、传参的概念。4.函数是在程序运行阶段加载到程序中。2.头文件中存放声明的全局变量和全局函数。

2024-07-22 00:52:31 242

原创 0719【C语言】

3.实参与形参类型不一致时,会将实参强制类型转换为形参类型,传入函数中。2.定义:定义一个之前不存在的变量或函数,需要开辟新的空间。函数类型 函数名(数据类型 形参, 数据类型 形参, ...)2.代码执行到变量定义时为变量开辟空间。3.超过变量的作用域回收变量空间。被调函数在主调函数下方定义,需要声明该函数。1.声明:声明一个已经存在的变量或函数。变量从开始被创建,到空间被回收的整个过程。1.自动型存储(局部存储)(默认存储类型)2.实参可以是常量、变量、表达式。函数名(实参1, 实参2, ...);

2024-07-19 22:03:31 353

原创 20240718【C语言】

1.选择排序:将最大值设定,后通过循环控制,将最大值选出。根据规律得知,每一轮在选择最大值所需要的次数需要注意改变(递减)。2.2访问 数组名[行下标][列下标] 二维数组不可以使用变量下标访问(指针)2.3.3默认初始化 (行能省略,列不能省略)2.冒泡排序:将最大值设定,后通过循环控制,将两个相邻的元素比较,满足条件的情况下将两个元素调换位置。三、字符型数组(在c语言中没有字符串类型,所以通过字符型数组存放字符串)2.4存储(N维数组是由N-1维数组构成的一维数组)

2024-07-18 19:15:47 216

原创 20240717【c语言】

在for循环语句中遍历数组中的元素,在if条件中判断最大值和最小值在for结束后输出下标。3.3默认初始化:没有给定数组元素个数时,通过给定初值的元素个数来确定。1.break:只能在switch或者循环中使用 (跳出循环)3.2局部初始化(没有给定的值会默认为0)2.1元素个数最小值,元素下标最小值。2.continue:在循环中使用(跳出本次循环)数据类型 数组名[元素个数(常量或常量表达式)];3.1全部初始化(每个元素)数组名[下标(常量/变量/表达式)];内部循环len-1-j(从j=0开始)

2024-07-17 21:13:06 177 1

原创 20240716【C语言】

case():语句块;case(常量):switch(整形表达式)1.3嵌套分支(if语句中嵌套if语句)注意:嵌套太深影响可读性,3-5。2.break可加可不加(根据需要)case 常量:语句;1.switch后加整形。default:语句;switch(整形表达式)switch(整形表达式)1.2阶梯分支(使用else if)for循环用于积累运算,if语句用于不断地判断条件。}while(逻辑表达式)注意:while(1)死循环。while(逻辑表达式)

2024-07-16 20:56:01 245 1

空空如也

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

TA关注的人

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