C
C
10 周理解计算机本质的第一门语言
适合谁:计算机专业学生、想打好底层基础、准备学 C++/嵌入式的人
难度
共 4 个阶段 · 10 周这条路上最常见的三个误区
- 把 C 当成「小一号的 C++」 —— 它是理解内存与操作系统的入口,不是过渡语言
- 指针看不懂就先跳过 —— 后面的内存模型、系统调用全都会塌
- 只看书不写 —— C 的坑只能靠段错误和调试器教育你
第一周就做这三件事
- 1装 gcc / clang + gdb,能编译多文件工程
- 2写 6 个指针练习:交换、数组遍历、字符串反转、二级指针、函数指针、链表插入
- 3用 AddressSanitizer 跑一次,亲眼看到内存越界的报错长什么样
「准备期」是拖延的另一种说法。先跑起来,再谈规划。
分阶段执行
按每周 10–12 小时估算,有基础可压缩学习进度 0%0/4 阶段 · 约 0/10 周
- 1
阶段一 · 语法与内存
建议 3 周阶段目标理解指针,不再害怕段错误
知识点基本类型与运算符数组与字符串指针与地址运算结构体与枚举函数与递归验收标准能手写链表增删改查;能解释指针与数组的区别
- 2
阶段二 · 内存管理
建议 2 周阶段目标掌握动态内存与调试
知识点malloc/free 与内存泄漏栈与堆多文件编译与 MakefileGDB 调试Valgrind 检测验收标准用 Valgrind 跑出 0 泄漏;能手写 Makefile
- 3
阶段三 · 系统编程
建议 3 周阶段目标理解程序如何与操作系统交互
知识点文件 IO 系统调用进程与 fork信号Socket 编程多线程 pthread验收标准浏览器能访问你写的服务器;能解释阻塞与非阻塞
- 4
阶段四 · 数据结构实战
建议 2 周阶段目标用 C 实现常用数据结构
知识点动态数组 / 链表 / 栈 / 队列哈希表二叉树排序与查找验收标准能分析各结构的时间复杂度;代码无内存错误