<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[kklovecode的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/kklovecode</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; kklovecode]]></copyright><item><title><![CDATA[C++对C语言的增强]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/157471830</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/157471830</guid><author>kklovecode</author><pubDate>Wed, 28 Jan 2026 19:00:22 +0800</pubDate><description><![CDATA[是需要将。]]></description><category></category></item><item><title><![CDATA[跑马灯 & 数码管]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/157398023</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/157398023</guid><author>kklovecode</author><pubDate>Mon, 26 Jan 2026 19:01:58 +0800</pubDate><description><![CDATA[LED数码管是一种电子显示设备，由多个LED（发光二极管）组成，通常用于显示数字0-9，有时也显示字母A-F。,方便展示,但是注意这个休眠函数是在一个for循环结束之后,也就是一排打印完之后,再进行休眠。走马灯会变更方向,所以接下来我们就利用定义的方向变量direction来定义方向,一个1在二进制中不断移动！根据上图结合理解,为什么是这几段亮.一个for循环打印一行,但注意,某一位是 1–> 对应LED亮。某一位是 0–> 对应LED灭。,并非直接全部打印了一行,然后。]]></description><category></category></item><item><title><![CDATA[数据结构---链表 & 栈]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/157181959</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/157181959</guid><author>kklovecode</author><pubDate>Tue, 20 Jan 2026 19:40:53 +0800</pubDate><description><![CDATA[/数据域void* data;//上一个节点 指针//下一个节点 指针}node;数据域仍是采用void指针类型,可以代表任意类型的指针//头节点node *head;//尾节点node *tail;//链表中节点的数量int size;双向链表的结构体关键就是在于用两个结点指针去指向对应的头结点和尾结点void* data;}node;node* top;int size;}stack;这里的链表其实就是一个单向链表,所以使用一个top指针就行,top指针。]]></description><category></category></item><item><title><![CDATA[数据结构---顺序表]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/157140323</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/157140323</guid><author>kklovecode</author><pubDate>Mon, 19 Jan 2026 19:27:48 +0800</pubDate><description><![CDATA[顺序表是线性表的顺序存储结构，其核心特征是：用一组地址连续的存储单元依次存储线性表中的元素，使得逻辑上相邻的元素在物理内存中也相邻。如何理解这里的物理与逻辑?①物理存储连续：所有元素存放在一片连续的内存空间中(类似数组).例如:存储元素 [1,2,3] 的顺序表，在内存中可能占用地址 0x100 ~ 0x111（假设每个 int 占 4 字节），每个元素的地址依次递增 4 字节。]]></description><category></category></item><item><title><![CDATA[C语言之头文件,宏和条件编译]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/156991001</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/156991001</guid><author>kklovecode</author><pubDate>Thu, 15 Jan 2026 19:37:36 +0800</pubDate><description><![CDATA[在C语言中，程序员可以根据不同的条件，有选择性地编译不同的代码块（忽略其它的代码块），从而产生不同的目标文件，这种机制称为条件编译。借助条件编译，我们可以在同一份源代码中包含针对不同操作系统、硬件架构或功能配置的代码，而无需维护多个独立的源文件。不管是标准头文件，还是自定义头文件，都只能包含变量和函数的声明，不能包含定义，否则在多次引入时会引起重复定义错误。宏在编译的第一个阶段(预处理)， 被处理完成，运行的过程中不占用时间（宏已经不存在）宏在预处理的时候直接展开。在预处理阶段就会被替换。]]></description><category></category></item><item><title><![CDATA[C语言之函数指针,指针函数,回调函数]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/156951239</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/156951239</guid><author>kklovecode</author><pubDate>Wed, 14 Jan 2026 20:14:42 +0800</pubDate><description><![CDATA[这个例子是模拟了平时日常生活中,通过微信支付,但是对于微信支付来说,真正进行支付的是银行支付,微信只是起到了一个中间桥梁的作用,所以我们调用微信支付的时候.微信支付又去调用了银行支付,上面代码就是这个作用,WEPAY是模拟微信支付的作用,然后ICBC和ABC和CCB是不同银行的支付函数.回调函数是一种将函数作为参数传递给另一个函数的技术，这使得我们可以在不修改原有函数代码的情况下，通过传入不同的函数来改变其行为。函数指针是指向函数的指针变量。C语言中的指针函数是一种特殊类型的函数，它的返回值是一个指针。]]></description><category></category></item><item><title><![CDATA[C语言static关键字]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/156950958</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/156950958</guid><author>kklovecode</author><pubDate>Wed, 14 Jan 2026 18:29:06 +0800</pubDate><description><![CDATA[而在代码二中,fun()函数的变量i用static修饰后,改变了其存储类型,全局区(静态区)保存,函数调用完后出栈,但是变量 i 此时并不会,因为压根不在栈区,所以每次调用函数都在原有基础上+1,这就是因为代码一,fun()函数中的变量 i (在栈区)随函数入栈出栈,所以每次循环后,再次调用函数, 变量 i 又为0,又从0开始＋1;2.static修饰全局变量和修饰函数,将它们的外部链接属性改为内部链接属性(说白了就是只有在自己的文件中使用),不能被外部其他文件。在静态数据区，内存中所有的字节。]]></description><category></category></item><item><title><![CDATA[const修饰的常量指针与指针常量]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/156912487</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/156912487</guid><author>kklovecode</author><pubDate>Tue, 13 Jan 2026 20:27:12 +0800</pubDate><description><![CDATA[只要const位于指针声明操作符右侧，就表明声明的对象是一个常量，且它的内容是一个指针，也就是一个地址。上面的声明可以这么读，声明了一个常量b，它的值是变量a的地址（变量a的地址，不就是指向变量a的指针吗）。指针是形容词，常量是名词。因为是一个指针常量，那么它指向的对象当然是一个指针对象，而它又指向常量，说明它指向的对象不能变化。虽然指针常量的值不能变，可是它指向的对象是可变的，因为我们并没有限制它指向的对象是常量。的左侧，无论它在类型名的左边或右边，都声明了一个指向常量的指针，叫做常量指针。]]></description><category></category></item><item><title><![CDATA[C语言数组:零长数组,可变数组,多维数组]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/156911046</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/156911046</guid><author>kklovecode</author><pubDate>Tue, 13 Jan 2026 20:13:45 +0800</pubDate><description><![CDATA[声明一个长度为0的数组，就可以使得这个结构体是可变长的，对于编译器来说，此时长度为0的数字并不占空间，]]></description><category></category></item><item><title><![CDATA[初始C语言-数组&字符数组与字符串]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/156733569</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/156733569</guid><author>kklovecode</author><pubDate>Fri, 09 Jan 2026 09:13:22 +0800</pubDate><description><![CDATA[我们可以定义一个指针，把这个地址赋值给它，那么我们定义指针的值那个地址编号。指向的就是那个变量的值的资质。但是对于这种情况,数组name里面就只有三个字符,没有多的  \0,明面上存的什么就是什么,不会有多的 \0;确认所申请的内存的大小，谨防越界。&a 就是a的地址（编号） ， 实质上也可以理解为他是一个 指向 a数据的存放的内存区域地址编号。是专门用来存储字符数据的数组，其每个元素存放一个字符，定义形式与一般数组类似，但元素类型为。更加严重的后果，如果访问的时系统关键的数据，则有可能造成系统崩溃。]]></description><category></category></item><item><title><![CDATA[c语法基础-顺序结构&选择结构&循环结构]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/156684283</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/156684283</guid><author>kklovecode</author><pubDate>Wed, 07 Jan 2026 13:57:32 +0800</pubDate><description><![CDATA[跳出选择结构  如果都没有匹配上的值 则执行default中的执行语句，找到break 跳出选择结构；选择结构用于判断给定的条件，如果条件满足才执行来控制程序的流程。理解:重复的去执行某件事情，但需要有一个终止条件，否则会形成死循环，导致内存溢出;将key的值与case中列举的值进行匹配  如果匹配 执行 执行语句。当循环条件为true时执行语句，false终止循环，不执行语句。根据循环条件依次执行，如果不满足条件即可退出循环。}else if(判断条件){}else if(判断条件){]]></description><category></category></item><item><title><![CDATA[初始C语言-基础篇]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/156613562</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/156613562</guid><author>kklovecode</author><pubDate>Mon, 05 Jan 2026 19:43:55 +0800</pubDate><description><![CDATA[可以看出char的本质就是ASCII表中的数字,所以既可以用字母也可以用数字(但注意数字要是0-127范围)在C语言标准(C89)没有定义布尔类型，所以C语言判断真假时以0为假，非0为真。:生活中的有些值是不变的（比如：圆周率，性别，身份证号码，血型等等）宏：最小值 LONG_MIN  最大值宏 LONG_MAX。char        //字符数据类型  (1字节)long long   //更长的整形 (8字节)long        //长整型 (4字节)int         //整形 (4字节)]]></description><category></category></item><item><title><![CDATA[【Linux】零基础入门Linux你所需要掌握的]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/134022744</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/134022744</guid><author>kklovecode</author><pubDate>Tue, 24 Oct 2023 21:55:36 +0800</pubDate><description><![CDATA[用户可以通过两种方式来指定权限设置：权限符号表示法和权限数字表示法。命令:即Linux程序,一个Linux命令就是一个Linux程序,命令没有图形化页面,可以在命令行提供字符化的反馈。要了解Linux首先,必须要了解linux的目录层级结构,因为在linux中有。为文件 ted 的所有者,所属组和其他用户设置读取和可执行权限（4+1=5）,我们会看到当前的文件和目录,除此之后,我们也会看到一系列"奇怪"的字母。“x”:如果是文件就是代表文件可执行,如果是目录,则代表可切换目录。]]></description><category></category></item><item><title><![CDATA[深度分析c++引用的本质以及引用与指针的区别]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/133859097</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/133859097</guid><author>kklovecode</author><pubDate>Mon, 16 Oct 2023 21:55:49 +0800</pubDate><description><![CDATA[引用不是新定义一个变量，而是给已存在变量取了一个别名，编译器不会为引用变量开辟另外的内存空间进行存储，它与引用的变量共用的是同一块内存空间的地址。格式如下:类型& 引用变量名(对象名) = 引用实体；而此处的不是取地址操作符,而是起标志作用,标志所定义的标识符是个引用.int a = 1;int& b = a;//此处就是引用的定义return 0;此处就相当于变量a,b共用同一块内存地址空间。]]></description><category></category></item><item><title><![CDATA[【排序算法】详解直接插入排序和希尔排序原理及其性能分析]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/133839540</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/133839540</guid><author>kklovecode</author><pubDate>Sun, 15 Oct 2023 16:13:30 +0800</pubDate><description><![CDATA[希尔排序和直接插入排序直接有着很强的关联性,希尔排序就是直接插入排序的加强版,利用预排序进行优化,提高排序的效率.总的来说,直接插入排序适用于小规模或基本有序的元素，具有简单易懂的实现方法和稳定的排序性质；希尔排序适用于中大型规模的元素，通过预处理和分组插入排序的方式，提高了排序的效率。选择使用哪种算法取决于具体的需求和数据特征。]]></description><category></category></item><item><title><![CDATA[【排序算法】详解冒泡排序及其多种优化&稳定性分析]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/133821594</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/133821594</guid><author>kklovecode</author><pubDate>Sat, 14 Oct 2023 22:01:34 +0800</pubDate><description><![CDATA[传统的冒泡排序完全可以满足我们最基本的需求，但是也仅仅是最简单的需求，这种简单的两个for循环不加任何的判断语句的形式注定它只能是一种效率较低的算法。虽然能有优化去完善算法,但是总体来说,冒泡排序的效率低.当然冒泡排序也有自身的优点,比如稳定!并且,冒泡排序适合教学,冒泡排序也是许许多多程序员接触的第一个排序算法,所以教学意义重大.]]></description><category></category></item><item><title><![CDATA[【数据结构】长篇详解堆,堆的向上/向下调整算法,堆排序及TopK问题]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/132822927</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/132822927</guid><author>kklovecode</author><pubDate>Tue, 12 Sep 2023 17:33:25 +0800</pubDate><description><![CDATA[😗:其实两种方式建堆之所以时间复杂度有差距,就是因为向下调整建堆可以看作忽略了最后一排的节点,直接从倒数第二排节点开始调整的,而在一棵满二叉树中最后一排的节点其实就占据了整棵树的二分之一,所以相当于向下调整比向上调整少经历了很多的节点所以实际堆排序中我们更多的使用的是。]]></description><category></category></item><item><title><![CDATA[【数据结构】树的基础入门]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/132760661</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/132760661</guid><author>kklovecode</author><pubDate>Fri, 08 Sep 2023 17:23:15 +0800</pubDate><description><![CDATA[相信大家刚学数据结构的时候最先接触的就是顺序表,栈,队列等线性结构.而树则是一种非线性存储结构,存储的是具有“一对多”关系的数据元素的集合非线性体现在它是由n个有限结点(可以是零个结点)组成一个具有层次关系的集合。把它叫做树是因为它看起来像一棵倒挂的树，也就是说它是根朝上，而叶朝下的一对多体现在比如对图中A来说,A对于和B,C都存在联系,同理B,C与其他的也均存在关系。]]></description><category></category></item><item><title><![CDATA[C++的命名空间namespace详解 && 特殊情况分析]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/132718478</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/132718478</guid><author>kklovecode</author><pubDate>Thu, 07 Sep 2023 14:59:20 +0800</pubDate><description><![CDATA[为了解决合作开发时的命名冲突问题，C++ 引入了命名空间Namespace的概念。当你要定义命名空间，需要使用到namespace关键字，后面跟命名空间的名字，然后接一对{ }即可，{ }中即为命名空间的成员//项目中成员分别以自己的名字定义了命名空间namespace zs//张三的变量定义int a = 1;namespace ls //李四的变量定义int a = 2;②嵌套定义int a = 0;int b = 0;③不同文件同名命名空间合并int a;int b;]]></description><category></category></item><item><title><![CDATA[CS架构和BS架构的联系与区别(零基础理解)]]></title><link>https://blog.youkuaiyun.com/kklovecode/article/details/132706890</link><guid>https://blog.youkuaiyun.com/kklovecode/article/details/132706890</guid><author>kklovecode</author><pubDate>Wed, 06 Sep 2023 09:50:16 +0800</pubDate><description><![CDATA[. 就拿爱奇艺举例,客户端(也就是你的电脑)需要安装专用的客户端软件(爱奇艺).服务器(爱奇艺公司自己的机房)通常采用高性能的PC、工作站或小型机，并采用大型数据库系统来进行数据交互存储。而B/S架构就时那些在浏览器上面玩的游戏,往往都有一个特点,那就是画质特效背景音乐都比较烂,其根本原因就是在你本地电脑是没有这些图片音频资源的,需要。对于用户体验拿游戏举例是个很好的例子,C/S架构的用户体验在于比如游戏来说,画面清晰,延迟低,特效好,游戏体验感强,那是因为所有这些数据资源都。]]></description><category></category></item></channel></rss>