<?xml version="1.0" encoding="utf-8" ?><rss version="2.0"><channel><title><![CDATA[Cyrus_Ma的博客]]></title><description><![CDATA[]]></description><link>https://blog.youkuaiyun.com/Cyrus_Ma</link><language>zh-cn</language><generator>https://blog.youkuaiyun.com/</generator><copyright><![CDATA[Copyright &copy; Cyrus_Ma]]></copyright><item><title><![CDATA[栈、队列、数组与表达式转换：我的精简复习笔记]]></title><link>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/166010426</link><guid>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/166010426</guid><author>Cyrus_Ma</author><pubDate>Sat, 19 Sep 2026 17:33:58 +0800</pubDate><description><![CDATA[栈：后进先出，所有操作盯住栈顶。队列：先进先出，入队看 rear，出队看 front。循环队列：取模回绕，rear 追上 front 前一格就是满。二维数组：C 语言按行存，公式里乘列数。]]></description><category></category></item><item><title><![CDATA[C语言数据结构复习：顺序表与链表核心总结]]></title><link>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/165005129</link><guid>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/165005129</guid><author>Cyrus_Ma</author><pubDate>Fri, 11 Sep 2026 18:45:29 +0800</pubDate><description><![CDATA[线性表是一组具有前后顺序关系的数据。它只是一个逻辑结构。线性表├── 顺序存储 → 顺序表└── 链式存储 → 链表顺序表：数据在内存中连续存放链表：结点可以分散存放，用指针连接起来L│▼[哨兵节点]│ next▼这个指针现在指向谁？我要修改的是哪个 next？修改以后，后面的链还能不能找到？只要这三个问题能回答出来，大部分单链表代码就能自己推出来。]]></description><category></category></item><item><title><![CDATA[C语言链表中的二级指针（LNode**）理解笔记]]></title><link>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/163539423</link><guid>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/163539423</guid><author>Cyrus_Ma</author><pubDate>Thu, 06 Aug 2026 16:53:11 +0800</pubDate><description><![CDATA[LNode * p;含义：p是一个指针，保存一个LNode节点的地址。p↓| next |LNode↓一个节点LNode*↓一个节点的地址意思：一个指向LNode*变量的指针。LNode↓ 加 *LNode*↓ 再加 *LNode**]]></description><category></category></item><item><title><![CDATA[C语言：文件操作]]></title><link>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/161366486</link><guid>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/161366486</guid><author>Cyrus_Ma</author><pubDate>Sun, 24 May 2026 16:19:13 +0800</pubDate><description><![CDATA[从磁盘角度看，硬盘上的东西就是文件。程序文件：比如.c源文件、.obj目标文件、.exe可执行文件。数据文件：程序运行时要读写的数据文件，比如.txt.bin。本讲重点讨论的是数据文件。文件路径 + 文件名主干 + 文件后缀文件操作让我第一次感觉 C 语言程序不再只是“运行一下就结束”，而是可以和磁盘上的数据建立长期联系。文件通过流来操作，流通过 FILE* 来维护。读写函数会推动文件指针移动。缓冲区让文件写入不一定立刻发生，所以关闭文件非常重要。判断 fp 是否为 NULL。]]></description><category></category></item><item><title><![CDATA[C语言：结构体与内存对齐]]></title><link>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/161224499</link><guid>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/161224499</guid><author>Cyrus_Ma</author><pubDate>Tue, 19 May 2026 14:11:06 +0800</pubDate><description><![CDATA[C语言的结构体是一个极其强大且贴近底层的工具。声明注意防套娃，typedef用好全名。内存对齐是重中之重，牢记“自身对齐”和“整体大一统”。传参一律传指针。位段能省比特级空间，但千万别对它取地址。把这些潜规则摸透了，结构体在你手里也就是任你拿捏的软柿子了！希望这篇总结能帮到大家，如有错漏欢迎在评论区交流哦！]]></description><category></category></item><item><title><![CDATA[C语言：有关整数和浮点数在内存中存储]]></title><link>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/161213133</link><guid>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/161213133</guid><author>Cyrus_Ma</author><pubDate>Tue, 19 May 2026 10:11:52 +0800</pubDate><description><![CDATA[底层知识虽然枯燥，但一旦理顺了逻辑，会有种“豁然开朗”的快感。整数存的是补码（为了让加法器一统天下）。字节序记住小端=低低高高。浮点数存的是SEMS + E + MSEM，记住MMM藏了1，EEE加了127。希望这篇总结对正在学C语言的你有所帮助，我们下期见！]]></description><category></category></item><item><title><![CDATA[C语言进阶避坑指南：从整型提升到指针微操的那些“潜规则”]]></title><link>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/161118526</link><guid>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/161118526</guid><author>Cyrus_Ma</author><pubDate>Fri, 15 May 2026 17:07:29 +0800</pubDate><description><![CDATA[a + 1&a的类型是“数组指针”int(*)[4]。加1意味着跳过整个数组（直接向后跨越16个字节），到达数字4末尾的下一个位置。(int*)强转：这一步给指针换了“工牌”，抹去了它与数组的关联，它现在认为自己只是个普通的int*，指向了数字4之后的那块内存。ptr1[-1]的步长：它等价于。决定指针加减步长的，永远是该指针当前的“去向类型”。由于此时ptr1是int*，回退1步就只退回 4 个字节，正好稳稳地指回最后一个元素4。类型符号位数值位取值范围特点与用途1位7位。]]></description><category></category></item><item><title><![CDATA[C语言：彻底搞懂四大内存操作函数]]></title><link>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/161089365</link><guid>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/161089365</guid><author>Cyrus_Ma</author><pubDate>Thu, 14 May 2026 21:01:54 +0800</pubDate><description><![CDATA[memcpy虽然好用，但它是个“直肠子”。如果你让它拷贝的源空间和目标空间有任何的重叠，复制的结果都是未定义的！memmove。在模拟实现memmove时，核心策略是判断地址的高低从前向后拷贝（从低地址到高地址）：当目标地址小于等于源地址，或者完全没有重叠时。从后向前拷贝（从高地址到低地址）：当目标地址大于源地址且发生重叠时。这种逆向拷贝保护了尚未被拷贝的源数据不被提前覆盖。]]></description><category></category></item><item><title><![CDATA[C语言：全面总结字符与字符串函数]]></title><link>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/161056759</link><guid>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/161056759</guid><author>Cyrus_Ma</author><pubDate>Wed, 13 May 2026 19:09:40 +0800</pubDate><description><![CDATA[在敲C代码的过程中，尤其是在跟指针和底层内存死磕的时候，处理字符和字符串常常让人头疼。为了方便操作，C语言标准库中提供了一系列极其强大的库函数。今天我把刚学完的第17讲内容做了系统梳理，不仅有核心知识点，还总结了和。写成这篇博客，既是为了巩固知识，也希望能帮到一起学习C/C++的同学们！]]></description><category></category></item><item><title><![CDATA[C语言实战：从零手写经典扫雷游戏 (控制台版)]]></title><link>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/160520484</link><guid>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/160520484</guid><author>Cyrus_Ma</author><pubDate>Sun, 26 Apr 2026 10:02:08 +0800</pubDate><description><![CDATA[虽然这个控制台版本的扫雷略显简陋，但它完整闭环了游戏的核心逻辑。难度选择：加入中等（1616棋盘，40个雷）和困难（3016棋盘，99个雷）模式。递归展开：如果排查的位置周围没有雷，可以实现像原版那样“唰”地展开一大片空白区域。编程就是这样一步步搭积木的过程，继续加油！]]></description><category></category></item><item><title><![CDATA[C语言分支循环作业错题与心得]]></title><link>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/160313498</link><guid>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/160313498</guid><author>Cyrus_Ma</author><pubDate>Sun, 19 Apr 2026 20:41:33 +0800</pubDate><description><![CDATA[例题《打印100-200的素数》]]></description><category></category></item><item><title><![CDATA[C语言底层数据表示与内存基础笔记]]></title><link>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/160193147</link><guid>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/160193147</guid><author>Cyrus_Ma</author><pubDate>Wed, 15 Apr 2026 23:02:07 +0800</pubDate><description><![CDATA[最高位为符号位（0正1负），其余位为数值绝对值。500000101原+5 = [0000\ 0101]_原500000101原​−510000101原-5 = [1000\ 0101]_原−510000101原​正数反码与原码相同；负数符号位不变，数值位按位取反。−511111010反-5 = [1111\ 1010]_反−511111010反​正数补码与原码相同；负数补码 =反码 + 1。−511111011补。]]></description><category></category></item><item><title><![CDATA[26.4.7指针错题积累]]></title><link>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/159931370</link><guid>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/159931370</guid><author>Cyrus_Ma</author><pubDate>Tue, 07 Apr 2026 23:19:29 +0800</pubDate><description><![CDATA[【代码】26.4.7指针错题积累。]]></description><category></category></item><item><title><![CDATA[C语言中的strlen与sizeof]]></title><link>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/159805788</link><guid>https://blog.youkuaiyun.com/Cyrus_Ma/article/details/159805788</guid><author>Cyrus_Ma</author><pubDate>Fri, 03 Apr 2026 22:09:55 +0800</pubDate><description><![CDATA[（上题中arr是一个字符数组，不是一个有效的字符串，因为后面没有放置’\0’，因此strlen在求解时，将有效字符检测完之后，还会继续向后检测，直到遇到’\0’是才终止，因此答案为不确定，就看紧跟在’t’之后的第一个’\0’在什么位置。strlen获取的规则非常简单：从前往后依次检测，strlen是用来获取。【答案打印随机的数】]]></description><category></category></item></channel></rss>