- 博客(11)
- 收藏
- 关注
原创 C语言头文件包含与宏
本文通过扫雷项目代码,串联解析了C语言中#include、宏与条件编译的核心概念。指出头文件包含路径差异(双引号优先本地,尖括号查系统路径),强调函数声明宜放头文件而定义应保留在.c文件以避免重复;揭示宏展开受运算符优先级影响,需用括号保护表达式;并通过MAX宏与函数对比,说明宏无类型检查且可能多次求值。最终以实验验证宏的副作用与条件编译指令(如#ifdef)的实际应用,实现知识体系的贯通。
2026-09-23 21:58:00
125
原创 C语言格式化输入输出与通讯录持久化
本文梳理了C语言中scanf、fscanf、sscanf等输入函数的区别,强调根据数据源(标准流、文件流、字符串)选择对应函数。指出feof不能用于预测读取结束,应以读取函数返回值为准。结合动态通讯录项目,实现文件保存与加载功能,使用二进制模式读写PeoInfo结构体,确保数据持久化,并改进了错误处理机制。
2026-09-23 21:41:22
163
原创 模拟实现atoi与动态通讯录
本文实现了atoi函数,模拟字符串转整数过程,处理空格、正负号及数字字符,并对动态通讯录进行扩容改造。通过realloc实现容量翻倍,避免频繁内存分配,确保添加联系人时空间充足。代码注重边界检查与内存安全,提升程序健壮性。
2026-09-11 12:23:03
136
原创 用结构体写一个固定容量通讯录:再看位段和宏展开
本文基于结构体实现固定容量通讯录,支持1000人存储,包含姓名、性别、年龄、电话、住址等字段。采用数组管理,通过size记录当前人数,提供增删改查等七项操作。程序使用fgets读取输入,避免缓冲区溢出与换行符干扰,严格校验输入合法性,确保数据安全。结合位段与宏展开分析,深入理解结构体内存布局与预处理机制。
2026-09-10 12:06:26
125
原创 C语言库函数模拟实现
本文整理并实现了C语言常用字符串与内存操作函数(如strlen、strcpy、strcat、strcmp、strstr、memcpy、memmove),通过添加my_前缀便于对比。重点解析了各函数的指针操作逻辑、边界处理(如空串、重叠内存)及实现细节,强调正确使用前提(如目标空间足够、避免重叠)。代码经多组边界测试验证,涵盖空字符串、零字节、重叠复制等场景,确保功能正确性与鲁棒性。
2026-09-09 12:15:03
60
原创 从双向循环链表到 Floyd 判环与深拷贝:C语言链表学习
从带哨兵位双向循环链表的统一插入删除出发,整理 Floyd 判环、寻找环入口,以及随机链表穿插深拷贝的核心不变量、完整 C 代码与本地验证边界。
2026-09-01 19:07:37
298
原创 用 C 写一个终端扫雷:两个棋盘、边界层和多文件拆分
本文用 C 语言实现一个 9×9 终端扫雷,重点讲清双棋盘设计、额外边界层、八邻域计数、随机布雷和多文件拆分,并提供可直接编译的 game.h、game.c、test.c 完整代码。
2026-08-28 16:13:39
351
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅