路径 C — C 向下兼容 C++ (先 C 后 C++ 学习路线)
本教程体系可当作类百科全书使用,内容完善但体量庞大。若作为教程从头通读,效率不高。
建议按照本路线中的推荐阅读顺序,结合索引文件进行选择性学习。
同时推荐与 AI 进行问答互动学习 — 在自认为掌握语法或数据结构之后,去 力扣 做题验证。
如遇到错误,不建议死磕,可用 AI 辅助纠正思路。
设计理念
C 和 C++ 不是两门独立的语言。C++ 从 C 继承了大量语法和底层思维,理解 C 之后再学 C++,能深刻理解 C++ 每个特性的”为什么”。本路线先建立 C 的底层认知 (指针/内存/手动管理),再用 C++ 的现代特性提升开发效率。
C 与 C++ 学完后的互补关系:
- C 教会你: 内存每一字节的去向、指针的本质、系统调用的底层、什么是”零开销”
- C++ 教会你: RAII 自动管理、OOP 设计、模板泛型、STL 高效编程
第一阶段: C 语言入门 (3 周)
先打好 C 语法和基础概念。
第二阶段: C 语言深化 — 建立底层认知 (4 周)
这是本路径最关键的一步:理解指针、内存布局、编译模型。这些认知将贯穿整个 C++ 学习。
学完此阶段后,你已经理解了 C 的指针本质、内存管理、编译链路和”用 C 写 OOP”的技巧。
这些都是 C++ 的底层基础。接下来可以正式开始 C++ 学习。
第三阶段: C++ 入门 (1 周,可与第二阶段末尾交叉)
C++ 基础语法与 C 高度重叠,一周快速过一遍即可。
- 01 下载与安装
- 02 环境配置
- 03 编辑器与IDE推荐
- 04 第一个程序与输入输出
- 05 变量与数据类型
- 06 运算符与表达式
- 07 条件语句
- 08 循环结构
- 09 数组基础
- 10 函数基础
- 11 字符串基础
第四阶段: C 与 C++ 交叉深化 (5 周)
这是本路径核心阶段。按 C 认知为基础,深入理解 C++ 的新特性。建议两侧文件配对阅读:
| # | C 侧 (底层原理) | C++ 侧 (现代封装) | 核心对比 |
|---|---|---|---|
| 1 | [[ISSUES | C 指针剖析]] | [[ISSUES |
| 2 | [[ISSUES | C malloc/free]] | [[ISSUES |
| 3 | (已完成) | [[ISSUES | C++ 命名空间]] |
| 4 | (已完成) | [[ISSUES | C++ 预处理器]] |
| 5 | [[ISSUES | C struct/union]] | [[ISSUES |
| 6 | [[ISSUES | C 手写 OOP]] | [[ISSUES |
| 7 | (OOP 延伸) | [[ISSUES | C++ 继承]] |
| 8 | [[ISSUES | C 手写虚函数表]] | [[ISSUES |
| 9 | (新特性) | [[ISSUES | C++ 运算符重载]] |
| 10 | (新特性) | [[ISSUES | C++ 函数模板]] |
| 11 | (新特性) | [[ISSUES | C++ 异常处理]] |
| 12 | [[ISSUES | C 标准库]] | [[ISSUES |
| 13 | (新特性) | [[ISSUES | C++ 多线程]] |
| 14 | (新特性) | [[ISSUES | C++ Web编程]] |
| 15 | [[ISSUES | C 标准库]] | [[ISSUES |
| 16 | [[ISSUES | C 信号]] | [[ISSUES |
第五阶段: STL 容器库 + 功能库 (2 周)
在有 C 底层认知和 C++ OOP 基础后,学习 STL 事半功倍。
STL 容器 (按使用频率排序):
- std::vector
- std::string
- std::map / std::unordered_map
- std::set / std::unordered_set
- std::stack / std::queue
- std::priority_queue
- std::deque / std::list
- std::array
- std::pair / std::bitset
功能库 (按需):
第六阶段: 数据结构 + 算法 (4 周)
按 DSA 学习路线 推进,用 C++ STL 实现。
Phase 1 线形结构:
Phase 2 核心结构:
Phase 3 图与进阶:
算法技巧 (按 DSA 的 Phase 3 顺序):
选学:
- L 线段树 / M 树状数组 BIT
- E 红黑树 / O B树
第七阶段: 汇编基础 (2 周,可穿插在第四阶段)
汇编是理解 C 和 C++ 底层行为的终极语言。
第八阶段: 系统内核 (4 周,可选)
推荐阅读物
- The C Programming Language (K&R)
- The C++ Programming Language (Bjarne Stroustrup)
- Effective Modern C++ (Scott Meyers)
- Computer Systems: A Programmer’s Perspective (CS:APP)
- Understanding the Linux Kernel
- Advanced Programming in the UNIX Environment (APUE)
语言官方文档
- ISO C Standard: https://www.open-std.org/jtc1/sc22/wg14/
- ISO C++ Standard: https://isocpp.org/
- cppreference (C + C++): https://en.cppreference.com/
- GNU C Library Manual: https://www.gnu.org/software/libc/manual/