自定义博客皮肤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)
  • 收藏
  • 关注

原创 SQlite3

SQLite3 写操作会锁定整个数据库(读操作可并发),高并发写场景(如多用户同时写入)不适用,适合单用户或低并发场景。适合场景:SQLite3 适合数据量不大(通常 < 10GB)、并发访问不高的场景。

2025-10-29 21:47:08 305

原创 ARM-汇编的基础知识

指令集版本:ARMv7-A。

2025-09-09 20:13:17 1076

原创 ARM处理器的小常识

现代操作系统中,CPU 执行程序时使用的是虚拟地址(由程序看到的连续内存空间),而实际数据存储在物理地址(内存硬件的真实地址)中。转换单位:通常以页(Page) 为单位(如 4KB、2MB),虚拟地址和物理地址被划分为大小相等的页,MMU 按页映射。--- current program status register:--(当前程序状态寄存器)(Linked Register)---链接寄存器---->R14,(Program Counter)---程序计数器--->R15.

2025-09-08 19:43:47 602

原创 串口通信—UART

1.串行通信:数据通过一条信号线逐位传输。特点:抗干扰能力强,但速度较慢。并行通信:数据通过多条信号线同时传输。特点:速度快,但线路多抗干扰能力弱。2.:数据只能(固定发送方和接收方)。:数据可双向传输,但(发送时不能接收,接收时不能发送)。:数据可(发送和接收独立进行)。串口通信:一种串行通信方式,通过单条或两条信号线传输数据,广泛用于设备间短距离通信。常见的串口通信为。通过的帧结构传输数据。时序如下:1.空闲状态:信号保持高电压(逻辑1)

2025-09-05 21:19:00 662

原创 寄存器、中断(c51版)

System on Chip 的缩写,即 “片上系统” 或 “系统级芯片”。它是指在单个芯片上集成微电子应用产品所需的所有功能的系统。:中央处理器:微处理器,单一芯片的处理器。:微控制器,将处理器核心,RAM,ROM,外设控制器全集成在一颗芯片上。:图形处理器,专门处理“图形/并行计算任务”的处理器。1.:指能操作硬件的,具有固定地址的内存空间。2.: 本质是MCU上灵活配置的“通用引脚”用于连接外部硬件,并实现数据输入/输出。

2025-09-04 20:35:14 396

原创 TCP并发服务器的构建

和是两种核心的服务器设计模式,其核心差异在于处理客户端请求的 “并行能力”—— 前者同一时间只能处理一个请求,后者可同时处理多个请求。

2025-08-28 09:13:02 370

原创 文件IO的使用

【代码】【无标题】

2025-08-13 08:56:50 260

原创 数据与结构-树

是一种非线性的数据结构,它由节点(Node)和边(Edge)组成,用于表示具有层次关系的数据。(n各节点的有限集合)

2025-08-09 09:02:43 401

原创 数据结构-哈希存储

哈希函数:将要存储的数据的关键字和存储位置之间,建立起对应关系,这个关系叫做哈希函数。哈希存储是一种基于实现高效数据存储与访问的技术,其核心思想是通过哈希函数将数据的 “键(Key)” 映射到特定的存储位置,从而实现快速的查找、插入和删除操作哈希存储的核心组件包括和。

2025-08-08 00:51:24 292

原创 数据结构-链表-栈和队列

1.在被调函数中,修改主调函数中的指针变量,需要传递·该指针变量的地址,形参用二级指针。2.指针数组的数组名是一个二级指针,需要传递指针数组的数组名,需要二级指针接收。

2025-08-07 01:33:29 464

原创 数据结构-链表-单向链表

快慢指针(Floyd's Tortoise and Hare Algorithm)是一种常用的链表操作技巧,通过两个移动速度不同的指针(快指针和慢指针)解决链表中的环检测、中间节点查找、倒数第 k 个节点查找等问题。链表的第一个节点称为头节点(head),最后一个节点的指针域为NULL(表示链表结束)。与数组不同,链表的节点在内存中无需连续存储,通过指针域连接形成链式结构。这种结构使得链表可以从任意节点开始遍历整个链表,且便于处理环形逻辑(如约瑟夫环问题)。循环链表的节点结构与单向链表相同,但尾节点的。

2025-08-05 09:05:06 266

原创 结构体、共用体、位运算符

2.结构体名:通常首字母大写(如Student),用于标识结构体类型。3.成员:可以是任意基本数据类型(int、float等)或其他结构体类型。4. 未指定的成员会被初始化为0(数值类型)或空(字符串)5.通过 .

2025-08-01 09:03:50 870

原创 动态内存分配和指针的指针

是 C 语言中用于动态内存分配的函数,全称为 "memory allocation"。它在堆(heap)区域分配指定大小的内存空间,并返回指向该内存的指针。申请的内存空间是连续的,且返回该内存的首地址。

2025-07-31 01:22:45 474

原创 数组与指针

被编译器视为只读数据,存储在内存的只读区域(通常与全局变量、静态变量的只读部分共享空间)。2.2 用const修饰指针变量,那么将无法通过*p修改它所指向的变量。”(例如 int* p[5] 是包含 5 个 int* 元素的数组)。任何类型的指针都可以直接赋值给 void* 指针,无需显式转换。2.1用const修饰普通变量表示该变量的值无法被修改。***括号 () 不可省略,否则会变成 “要修改字符串,应将其复制到栈区或堆区。的指针,而非指向数组中单个元素的指针。指针指向的值不可改,指针本身可改。

2025-07-29 20:07:12 439

原创 指针的练习-快速排序

两个同类型指针相减,结果是它们之间的元素个数(而非地址差值),要求两个指针指向同一数组(否则结果无意义)。,如:P+n,其结果依旧是指针,新指针是在原来地址值上加n*(sizeof(基类型))个字节。:确保指针类型与指向的变量类型一致,必要时使用显式类型转换(需谨慎)。(指向某块内存的位置),而两个地址的 “和” 在逻辑上没有意义。野指针指向随机内存地址,解引用可能导致程序崩溃或数据损坏。比较两个指针的地址高低,常用于判断数组访问边界。例如:*(a+3)代表的是数组a[3]的值。指针传参,传递的是数组。

2025-07-28 20:21:57 243

原创 预处理(文本替换)

define 宏名大写 表达式#define 宏名 替换文本后面不能加;不带参宏#define PI 3.1415926 // 定义圆周率常量#define MAX_SIZE 100 // 定义数组最大长度// 使用示例带参宏 例:#define ADD(a,b) a+b// 计算两数之和// 求两数中的最大值(a) : (b))// 使用示例// 替换为 ((3) + (5))// 替换为 ((10) > (20)?编译前替换。

2025-07-28 19:41:50 297

原创 标识符的作用域与可见性

用于实现多文件编程中的跨文件访问。extern 声明时不能初始化变量(初始化属于定义,而非声明)。若多个文件需要共享变量,通常在 .h 头文件中用 extern 声明,再在一个 .c 文件中定义。

2025-07-25 20:54:55 356

原创 C语言—函数、函数的递归调用

。:在传参时出现(++i;i ),(i, i++)之类的情况,由于版本不同,编译器的差异等原因,结果是未知的、不同的。2.在软件开发中,和是两种常见的构建模式,用于满足不同阶段的需求(开发调试 vs 最终发布)-g debug 编译用于开发阶段,方便程序员调试代码。会保留大量调试信息(如变量名、函数调用栈、代码行号等),这些信息存储在可执行文件中,供调试器使用。确保代码执行逻辑与源码顺序一致,便于单步调试。release编译用于软件最终发布,供用户使用。

2025-07-24 19:56:24 298

原创 数组and函数(3 days)

返回值类型 函数名(参数列表)// 函数体(实现逻辑)return 返回值;// 若返回值类型为 void,可省略 return1.返回值类型:函数执行后返回的数据类型(如 int、float,无返回值用 void)。2.函数名:遵循标识符规则,建议见名知意(如 sum、calculateGCD)。3.参数列表:用逗号分隔的参数(格式:类型 参数名),无参数时可写 void。

2025-07-23 20:36:11 297

原创 数组(第二天)

或 char a[100] ={'H','e','l','l','o'};如果s1的字符串的等于s2的字符串,返回值为0.如果s1的字符小于s2的,返回值为负。在有序数组中采用取中间值作比较,能在数据量特别大时快速找到要找数字的位置。2.1 初始化时未被定义的数组元素系统自动补0,在ascll码中为\0。2.2 数组元素若未初始化,且未被赋值时数组元素为随机数。在比较过程中,如果s1的字符大于s2的,返回值为正,是标准库中的一个字符串输出函数,声明在。2.6 数组的数组名为数组的首元素地址。

2025-07-22 19:23:05 444

原创 一维数组(linux)-排序-选择、冒泡,插入

单一性:所有元素必须是相同类型(如整数、浮点数、字符等),(如 int 数组只能存整数)如果在初始化时,赋值的数组的元素少于数组定义的个数,未赋值的数组元素则为0。访问或修改超出数组索引范围的位置(如对长度为 5 的数组访问a。输出:9,8,7,6,5,5,4,4,3,2,1。输出结果:1,2,3,4,5,6,7,8,10。连续性:元素在内存中依次排列,便于高效访问。输出结果为:1,2,3,0,0,随机数,输出结果为:7,6,5,4,3,2,1,1,2,3,0,0,下面是选择排序,升序代码。

2025-07-21 21:00:53 188

原创 适合c语言初学者的循环结构

补充:三目运算符 条件?值1 : 值2使用方法 : 如条件为真返回值1 条件为假返回值2.

2025-07-19 21:41:51 899

原创 学c的又一天:关系符和关系表达式

如果使用错误的格式说明符(如 "%d"),scanf 会尝试写入 int 类型的数据(通常是 4 字节),但 short* 指针实际指向的是 2 字节的内存,这会导致内存越界和未定义行为。解决方式: 拿上面代码来说,可以使用getchar()函数(不需要管数据的类型),可以将缓存区的不规范数据取出来后,在重新输入,等到返回值为2时,则代表输入正确。%d对应的是int型。:在函数调用时,short 类型的参数会被自动提升为 int(只要 int 能完整表示 short 的范围,通常是这样,

2025-07-18 20:59:36 901

原创 又是学c的一天

putchar 函数可以输出在屏幕上显示的字符,也可以输出控制字符,如 putchar('\n') 的作用是输出一个换行符,使输出的当前位置移到下一行开头。putchar(输出字符) 、getchar(输入字符)、printf(格式输入)、scanf(格式输出)、%a.bf : a为所占字符的范围(若小于数字本身,则按本身所占字符),b为小数后保留的有效数字(四舍五入)。%e,%E :采用科学计数法的浮点型或称指数形式的浮点数(之前文章有提到过)。%f 十进制的浮点型,占4个字节。%lf :占八个字节。

2025-07-17 19:43:31 643

原创 C语言的又一天

char :字符型占一个字节。使用方法输出结果:a 通常和ASCLL码表用。输出结果: C。

2025-07-16 20:20:54 1033

原创 c语言的简单知识

内部存储分器为RAM,ROM。,存储不易丢失即使断电数据不会消失,但读写速度慢。(random access memory)计算机和手机中一般把其叫做,读写速度快,但断电会丢失数据。:是计算机表示数据最小的单位(byte)是存储的最小单位1byte就是1B。在c语言中,是用来给变量、常量、函数、类、接口等元素命名的字符序列。标识符可以由英文大小写组成,但数字不能作为首字符。_adnai_55 、 adjn5 、dka_jdakj 都是可以的。

2025-07-15 18:47:18 717

原创 Linux的基础操作

vi/vim :编辑命令。(i进入插入模式,Esc返回命令模式+wq保存退出,q!Linux其内核采用c语言编写,遵循POSIX标准,具有UNIX特性。ls :列出目录(选项-l详细信息,-a隐藏目文件)。rm 删除文件(-r递归删除目录-f强制删除)。pwd :显示当前工作目录的完整路径。cp :复制目录(-r复制目录)。mv :移动或重命名文件/目录。touch:创建普通空文件。mkdir :创建新目录。cd :切换到当前目录。

2025-07-14 20:59:42 411

空空如也

空空如也

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

TA关注的人

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