自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 嵌入式 - 数据结构:循环链表和内核链表

/ 数据域// 前驱指针// 后继指针} linknode;// 首尾自环Linux 内核中通过// 后继指针// 前驱指针初始化初始化头节点,使其首尾自环;插入(头插)、(尾插);删除从链表中移除节点;遍历遍历数据元素,其中member为数据结构中成员的名称;数据定位通过节点指针ptr找到数据结构的首地址(核心宏,通过指针运算实现)。使用内核链表时,需在自定义数据结构中嵌入// 示例:定义一个包含内核链表节点的进程结构int pid;// 进程ID// 进程名。

2025-08-05 20:53:10 313

原创 嵌入式 - 数据结构:查找至双向链表

双向链表是一种每个节点除了存储数据外,还包含两个指针的线性数据结构:一个指针(ppre)指向前一个节点,另一个指针(pnext)指向后一个节点。这种结构允许我们从任意节点出发,既可以向前遍历,也可以向后遍历,弥补了单向链表只能单向访问的局限性。与单向链表相比,双向链表的核心差异在于多了一个前驱指针,这使得它在插入、删除操作中不需要像单向链表那样依赖前驱节点的跟踪,从而提升了操作效率。/* 节点存放数据的类型 *//* 节点类型 */// 存放数据的空间// 指向当前节点的前一个节点。

2025-08-04 22:16:34 479

原创 嵌入式 - 数据结构:数据结构基础与链表

单向链表节点通常包含数据域和指针域/* 链表存放数据的类型 *//* 链表节点类型 */// 存放数据的空间// 存放下一个节点的地址} linknode;//struct node 是结构体名称 是类型//linknode 等价于上方 是类型(link-链 node-节点)这种结构设计使得每个节点既可以存储数据,又能指向链表中的下一个节点。

2025-08-02 21:25:54 651

原创 嵌入式 - C语言:构造数据类型、位运算与内存管理

定义形式结构体类型 数组名[元素个数];,其中元素个数必须是常量。// 姓名char sex;// 性别('m'/'f')int age;// 年龄int score;// 成绩// 包含3个学生的数组初始化方式全部初始化:按顺序为每个元素的成员赋值。指定元素初始化:通过[索引]指定特定元素的成员,未指定的元素默认初始化为 0。[1] = {.name = "zhangsan", .score = 90} // 仅初始化第2个元素定义形式union 共用体名 {数据类型1 成员1。

2025-07-30 22:08:12 1432

原创 嵌入式 - C语言:指针与构造数据类型

定义:使用struct// 姓名char sex;// 性别('m'/'f')int age;// 年龄int score;// 成绩初始化;局部初始化(指定成员):// 未指定的成员自动初始化为0。

2025-07-29 22:40:12 881

原创 嵌入式 - C语言:指针数组、数组指针与复杂指针应用

二级指针是指向一级指针变量的指针。如果说一级指针存储的是普通变量的地址,那么二级指针存储的就是一级指针变量的地址。int **q;// 定义一个二级指针q在 64 位操作系统中,二级指针与所有指针变量一样,占用 8 个字节的内存空间,其指向的是一个一级指针变量的内存地址。指针数组是数组,其每个元素都是指针。数据类型 *数组名[元素个数];例如int *a[5];表示定义一个包含 5 个元素的数组a,每个元素都是int *类型的指针。

2025-07-28 21:40:47 811

原创 嵌入式 - C语言基础:指针和数组

在 C 语言中,指针和数组是两个核心概念,它们之间的联系紧密又容易混淆。今天我们就从指针与数组的关系说起,一步步理解,再延伸到 const 指针、函数指针与指针函数等进阶内容。

2025-07-28 09:01:44 434

原创 嵌入式 - C语言基础:指针

存储类型 数据类型 *变量名;示例:int *p;// 定义int类型指针pchar *str;// 定义char类型指针strfloat *fp;// 定义float类型指针fp// 同时定义多个int类型指针(注意每个变量前都需要*)指针本质:指针就是地址,指针变量用于存储地址,64 位系统中均占 8 字节核心运算符:取地址,获得变量的内存首地址:解引用,访问指针指向的内存空间算术运算:指针的偏移量由所指向数据的类型决定,+1表示偏移一个数据类型大小的字节数函数传参。

2025-07-25 21:30:39 596

原创 嵌入式 - C语言基础:函数(二)

宏定义分为不带参宏和带参宏,本质是代码的文本替换,在编译阶段完成展开,不涉及运行时的计算。不带参宏:常用于定义常量,简化代码中重复出现的数值或字符串。#define PI 3.1415926 // 后续代码中PI会被替换为3.1415926#define MAX_LEN 100 // 定义数组最大长度为与变量区分,宏名通常使用全大写。带参宏(宏函数):可实现简单逻辑的代码复用,与函数相比无需调用开销,但缺乏类型检查。x : y) // 求两个数的最大值特性带参宏函数类型检查。

2025-07-24 22:15:00 860

原创 嵌入式 - C语言基础:函数(一)

函数的定义是其 “实现”,包含函数类型、函数名、形式参数(形参)和函数体。函数类型 函数名(数据类型1 形参1, 数据类型2 形参2, ...) {函数体;return 返回值;函数类型:指定函数返回值的类型(如intvoidchar等),void表示无返回值。函数名:命名规则与变量一致(字母、数字、下划线组成,不与关键字重名)。形参:函数接收的输入,定义时必须指定类型,仅在函数体内有效。调用函数时,需传入实际参数(实参),实参个数和类型需与形参匹配。函数名(实参1, 实参2, ...);

2025-07-23 23:54:11 752

原创 嵌入式 - C语言基础:数组(三)

char 数组名[行数][每行字符数];,其中 “行数” 表示可存储的字符串数量,“每行字符数” 表示单个字符串的最大长度(含\0// 5行32列,每行可存31个有效字符 + 1个'\0'其使用场景包括:存储命令列表、用户名称集合、多行文本等。标准库函数虽便捷,但理解其底层实现能帮助我们更好地掌握字符串操作的本质。// 计算从str开头到'\0'的字符数(不含'\0')= '\0') {len++;return len;// 将src拷贝到dst,返回dstint i = 0;

2025-07-22 21:46:39 520

原创 嵌入式 - C语言基础:数组(二)

定义规则二维数组的定义形式为数据类型 数组名[行数][列数],其中行数和列数必须是常量或常量表达式,且列数不可省略(行数可省略,编译器会根据初始化数据自动推断)。(2 行 3 列的整数数组)、(省略行数,编译器推断为 2 行)。初始化方式全部初始化:明确指定每行元素,如;局部初始化:未指定的元素默认值为 0,如(其余元素为 0);默认初始化:省略行数,仅指定列数和数据,如(编译器推断为 2 行,第二行元素为 4,0,0)。定义规则。初始化方式(编译器自动添加 '\0');

2025-07-21 20:41:21 874

原创 嵌入式 - C语言基础:数组(一)

数组是一组相同类型有限个数据的集合。这意味着数组中的每个元素都必须是同一数据类型(如 int、char 等),且元素的数量是确定的,不能动态增减。类型一致性:所有元素属于同一数据类型,保证了操作的统一性。元素有限性:数组在定义时就确定了元素个数,后续不能修改。存储连续性:数组的所有元素在内存中连续存放,通过下标可以快速访问任意元素。有序性:元素按固定顺序排列,下标从 0 开始依次递增。数据类型 数组名[元素个数];其中,元素个数必须是常量或常量表达式,不能是变量或变量表达式。

2025-07-21 00:51:27 964

原创 嵌入式 - C语言基础:分支结构和循环结构

在 C 语言中,程序的执行并非总是线性的,通过流程控制语句,我们可以根据不同条件执行不同代码块,或重复执行某段代码。本文将详细解析分支结构和循环结构的核心用法,帮助开发者掌握程序流程的灵活控制。

2025-07-18 21:07:06 721

原创 自学嵌入式day4 - C 语言基础:输入输出函数与流程控制

在 C 语言中,输入输出操作和流程控制是编写程序的基础。本文将详细介绍 C 语言中的输入输出函数以及流程控制的相关知识,帮助初学者快速掌握这些核心概念。

2025-07-17 21:01:18 1001

原创 自学嵌入式day3 - C语言基础知识

C 语言共有 32 个关键字,这些关键字可以分为数据类型关键字、控制语句关键字、存储类型关键字和其他关键字四类。1.数据类型关键字数据类型关键字用于声明变量的类型,包括基本数据类型、类型修饰关键字和复杂类型关键字。基本数据类型:声明字符变量。:声明整型变量。:声明单精度浮点型变量。:声明双精度浮点型变量。:声明函数无返回值或无参数,声明无类型指针。类型修饰关键字:修饰 int,表示短整型。:修饰 int,表示长整型。:修饰整型数据,表示有符号类型。:修饰整型数据,表示无符号类型。复杂类型关键字。

2025-07-16 19:12:54 694

原创 自学嵌入式day2 - c语言基础知识

包含 结构体 共用体 枚举。

2025-07-15 20:32:11 514

原创 自学嵌入式day1 - Linux基本命令及Linux下c语言开发

本文以VMware搭载ubuntu(Linux操作系统)进行Linux的学习linux:当前登录的用户名@:分隔符ubuntu:当前登录的主机名~: 当前所在的目录。

2025-07-14 20:54:10 663 1

空空如也

空空如也

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

TA关注的人

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