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