<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[X_b4321的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/X_b4321</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; X_b4321]]></copyright><item><title><![CDATA[数据结构笔记｜内核链表、队列、栈、二叉树、哈希表、算法复杂度全梳]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163925165</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163925165</guid><author>X_b4321</author><pubDate>Thu, 20 Aug 2026 19:17:45 +0800</pubDate><description><![CDATA[container_of：已知结构体某个成员的指针，减去偏移量，得到整个宿主结构体的首地址，遍历的时候用来拿到我们真正的业务数据。整理嵌入式 / Linux C 开发高频数据结构，从内核侵入式链表，到队列、栈、二叉树，再到大 O 时间复杂度、常见排序算法。或者从下到上从右向左删除节点得到。链式队列 API：创建队列、入队、遍历、判空、出队、获取队头元素、销毁队列。链式栈 API：创建栈、入栈、出栈、判栈空、获取栈顶元素、清空栈、销毁栈。循环队列 API：创建、入队、遍历、判空判满、出队、获取队头、销毁。]]></description><category></category></item><item><title><![CDATA[*数据结构*]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163865426</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163865426</guid><author>X_b4321</author><pubDate>Tue, 18 Aug 2026 23:45:06 +0800</pubDate><description><![CDATA[使用快慢指针法：从起点开始，快指针一次走两步，慢指针一次走一步，若快指针最终走到了NULL 的位置，说明链表无环；索引存储：将要存储的元素关键字和存储位置构建索引表，数据查找是通过查询索引表获取数。散列存储（哈希存储）：将要存储的元素的关键字和存储位置之间建立起对应关系，这个关系。称为哈希函数，数据存储时，按照哈希函数的映射进行存储；从相遇点开始，让指针开始遍历链表，当该指针再次走到相遇点，则统计出了的个数为环长。一个指针从想遇点开始走，一个指针从头走，当两个指针再次相遇，则为环形的入口。]]></description><category></category></item><item><title><![CDATA[多文件管理]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163703463</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163703463</guid><author>X_b4321</author><pubDate>Thu, 13 Aug 2026 18:43:29 +0800</pubDate><description><![CDATA[3. 如果要在一个外部的源文件中使用该全局变量，则该变量必须被声明；2. 如果只是在定义该全局变量的文件中使用该全局变量，可以不声明；= : 若变量之前有被赋过值，则保留原值。+= ：在原变量值的基础上再增加新值。实现一键化工程的编译和链接。定义Makefile的变量。1. 在源文件中定义全局变量；若变量之前没有被赋过值，则赋新值。4. 在对应的头文件中加。关键字声明，声明全局变量不能初始化。：管理代码工程的编译和链接，由。]]></description><category></category></item><item><title><![CDATA[内存管理、位运算]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163703151</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163703151</guid><author>X_b4321</author><pubDate>Wed, 12 Aug 2026 17:52:15 +0800</pubDate><description><![CDATA[< 按位左移                 按位左移，低位补0 num << n <===> num * 2^n。>> 按位右移                 按位右移动，有符号数高位补符号位；在函数中开辟的空间，希望随着函数结束，该空间任然存在，可以去堆上开辟。当需要的空间比较大时，可以去堆上开辟，栈区空间有限，默认8M。内存泄露：程序运行过程中，堆区申请的空间在使用完没有释放，则造成内存泄露。堆区由开发人员手动申请和释放，使用完时及时释放，否则造成内存泄露。gdb ./可执行程序。]]></description><category></category></item><item><title><![CDATA[构造数据类型]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163702814</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163702814</guid><author>X_b4321</author><pubDate>Wed, 12 Aug 2026 17:41:44 +0800</pubDate><description><![CDATA[1. 枚举里面的成员都是枚举常量，都是整形常量，所以不需要写数据类型；3. 枚举中的枚举常量，类似于整形符号常量，可以直接被引用；如果要在被调函数中修改主调函数中的结构体变量，则传递结构体变量的地址；如果在被调函数中使用主调函数中定义的结构体变量，可以值传递，也可以传地址。结构体成员在内存中存储时，成员必须存储在自己字节大小的整数倍位置；小端：内存的高地址存储高字节位，内存的低地址存储低字节位；大端：内存的高地址存储低字节位，内存的低地址存储高字节位；声明结构体类型的同时，定义了一个变量，变量的变量名。]]></description><category></category></item><item><title><![CDATA[【无标题】C语言（指针）]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163540856</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163540856</guid><author>X_b4321</author><pubDate>Thu, 06 Aug 2026 18:12:32 +0800</pubDate><description><![CDATA[指针数组：本质是数组，该数组中保存的是指针。语法：int a[5];int *a[5];int * :数组中保存的数据类型：该数组中保存的元素是int *指针[5] :该数组中可以保存5个指针（int *定义了一个可以保存5个整形指针的数组，整体占40个字节char *p[5];1.指针数组的定义指针类型 数组名元素个数；2.指针数组的初始化将5个字符型指针初始化成NULL；指针保存字符串常量"hello"的首地址。]]></description><category></category></item><item><title><![CDATA[C语言（指针）]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163482160</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163482160</guid><author>X_b4321</author><pubDate>Tue, 04 Aug 2026 22:23:22 +0800</pubDate><description><![CDATA[被调函数想要返回多个结果时，可以传递主调函数定义的变量的地址，地址指向的空间可以保存被。野指针：未初始化或赋值的一个指针，或者指向一个已经释放的内存空间的指针。被调函数中，想要使用主调函数中定义的变量，可以传递值，也可以传递地址。被调函数中，想要修改主调函数中定义的变量，必须传递该变量的地址；指针：指针即为地址，地址即为指针，指针指向了一个具体的空间。指针变量：变量，保存地址的变量，需要占用内存空间。指针变量中保存的地址，是该指针指向的数据的首地址。给某个变量取地址时，获取的是这个变量首字节的地址。]]></description><category></category></item><item><title><![CDATA[C语言（函数与数组）]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163449408</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163449408</guid><author>X_b4321</author><pubDate>Mon, 03 Aug 2026 19:15:24 +0800</pubDate><description><![CDATA[一维字符型数组作为函数参数传递时，只需要传递数组即可，不需要传递长度，因为字符型型数组。在具有包含关系的作用域中，出现了同名标识符，外层标识符在内层不可见（就近原则）局部变量：定义在局部作用域中的变量（函数内部定义的变量、函数形参）局部变量：在被定义的时候开辟空间，超出其作用域范围空间被回收。修饰的静态变量：从程序运行之前空间开辟，程序运行结束空间被回收。在自定义的函数中，行数无法计算，所以可以通过参数的方式传递。变量的生命周期：从变量的空间开辟到空间回收对应的生存期。]]></description><category></category></item><item><title><![CDATA[C语言（函数）]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163374032</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163374032</guid><author>X_b4321</author><pubDate>Fri, 31 Jul 2026 19:24:47 +0800</pubDate><description><![CDATA[void：空类型，当函数执行完，不再需要有任何结果返回时，可以使用void类型的返回值。数组作为函数参数传递时，本质传递的是数组的首元素地址，所以形参本质是一个地址，是数组的。函数传参过程，其实是实参向形参拷贝的过程，实参有实参的空间，形参有形参的空间（值传。保护现场：当函数要被调用的时候，会将函数调用位置的下一条指令地址保存在栈空间；数组作为函数参数传递给被调函数后，函数内部的使用方法和外面使用一样，除了。恢复现场：当被调函数执行完时，通过出栈保护现场的地址，决定。递归要有递归的出口，否则会成为死循环。]]></description><category></category></item><item><title><![CDATA[C语言（二维整形与字符型数组）]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163342435</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163342435</guid><author>X_b4321</author><pubDate>Thu, 30 Jul 2026 18:52:51 +0800</pubDate><description><![CDATA[在二维数组有初始化值得情况下，可以省略行数，不能省略列数。一维字符型数组：保存一个字符串。二维字符型数组：保存多个字符串。]]></description><category></category></item><item><title><![CDATA[C语言（数组排序以及字符型数组）]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163311181</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163311181</guid><author>X_b4321</author><pubDate>Wed, 29 Jul 2026 18:28:50 +0800</pubDate><description><![CDATA[思想：将待排位置的数据和后面的数据依次进行比较，按照升序要求，将较小值存储在待排位置。排序算法的稳定性：在一个待排序列中出现了两个相同的数据，经过排序之后，这两个相同数据的。思想（升序）：将要查找的值和序列的中间位置值比较，比中间位置值大，则在后半序列中继续折。思想：相邻两两数据进行比较，按照升序要求，将较大值交换到两两中的后者位置，经过一趟排。半查找，如果比中间值小，则从前半个序列中继续折半查找，如果恰好相等，则找到。：计算字符串的长度（字符型数组中有效字符的个数，不包含。没用初始化的部分，默认存储。]]></description><category></category></item><item><title><![CDATA[C语言（循环语句部分以及数组）]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163280281</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163280281</guid><author>X_b4321</author><pubDate>Tue, 28 Jul 2026 18:57:45 +0800</pubDate><description><![CDATA[类型说明符 数组名[常量]；类型说明符：基本数据类型、构造数据类型。说明数组中保存的数据的数据类型。数组名：遵循标识符的命名规则。[常量]：数组中可以保存的元素的个数。]]></description><category></category></item><item><title><![CDATA[C语言（循环结构）]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163249557</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163249557</guid><author>X_b4321</author><pubDate>Mon, 27 Jul 2026 18:44:21 +0800</pubDate><description><![CDATA[表达式2：循环被执行的条件；表达式2的结果为真，则执行循环体；表达式2的结果为假时，跳出循环。循环执行的条件：逻辑结果的表达式，表达式结果为真，执行循环体；表达式结果为假，跳出循环。5)for循环和{}之间不要任何语句；循环的初始条件：while（）前面。表达式3：让循环趋于结束的条件。循环中的循环体，至少要执行一次。让循环趋于结束的条件：循环体内。（表达式）后面必须要加分号。表达式1：循环的初始条件。}while（表达式）；while（表达式）while（表达式）]]></description><category></category></item><item><title><![CDATA[C语言（流程控制）]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163197004</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163197004</guid><author>X_b4321</author><pubDate>Sat, 25 Jul 2026 18:57:43 +0800</pubDate><description><![CDATA[顺序结构、分支结构、循环结构。]]></description><category></category></item><item><title><![CDATA[C语言基础（常用输入输出函数）]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163169735</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163169735</guid><author>X_b4321</author><pubDate>Fri, 24 Jul 2026 18:38:36 +0800</pubDate><description><![CDATA[函数：封装的一个功能模块输入输出：标准C库提供的输入输出函数。]]></description><category></category></item><item><title><![CDATA[C语言基础（常量变量、表达式、类型转换、运算符）]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163140359</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163140359</guid><author>X_b4321</author><pubDate>Thu, 23 Jul 2026 18:46:39 +0800</pubDate><description><![CDATA[数据类型  变量名；变量名的命名要遵循标识符的命名规则：]]></description><category></category></item><item><title><![CDATA[C语言基础学习（数据类型）]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163112332</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163112332</guid><author>X_b4321</author><pubDate>Wed, 22 Jul 2026 18:47:12 +0800</pubDate><description><![CDATA[最大值：1111 1111 1111 1111 1111 1111 1111 1111--》2^32-1=42亿+最大值：0111 1111 1111 1111 1111 1111 1111 1111--》2^31-1 21亿+最小值：1000 0000 0000 0000 0000 0000 0000 0000--》-2^31  -21亿。最小值：0000 0000 0000 0000 0000 0000 0000 0000--》0。最小值：0000 0000 0000 0000---》0。]]></description><category></category></item><item><title><![CDATA[linux入门基础]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163084258</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163084258</guid><author>X_b4321</author><pubDate>Tue, 21 Jul 2026 18:35:33 +0800</pubDate><description><![CDATA[显示当前文件夹下的文件具体信息：文件大小、文件创建者和创建时间等。显示当前文件夹下的文件具体信息：文件大小、文件创建者和创建时间等。显示当前文件夹下的文件具体信息：文件大小、文件创建者和创建时间等。显示当前路径下所有文件的名称，包括隐藏文件（显示当前路径下所有文件的名称，包括隐藏文件（显示当前路径下所有文件的名称，包括隐藏文件（将文件中的数据以文本的方式显示到终端。查看该文件夹下的文件所占的硬盘空间。显示当前路径下所有文件的名称。显示当前路径下所有文件的名称。显示当前路径下所有文件的名称。]]></description><category></category></item><item><title><![CDATA[【无标题】]]></title><link>https://blog.youkuaiyun.com/X_b4321/article/details/163084406</link><guid>https://blog.youkuaiyun.com/X_b4321/article/details/163084406</guid><author>X_b4321</author><pubDate>Tue, 21 Jul 2026 18:34:32 +0800</pubDate><description><![CDATA[你好！ 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章，了解一下Markdown的基本语法知识。我们对Markdown编辑器进行了一些功能拓展与语法支持，除了标准的Markdown编辑器功能，我们增加了如下几点新功能，帮助你用它写博客：撤销：Ctrl/Command + Z
重做：Ctrl/Command + Y
加粗：Ctrl/Command + B
斜体：Ctrl/Command + I
标题：Ctrl/Command + S]]></description><category></category></item></channel></rss>