路径 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 高度重叠,一周快速过一遍即可。


第四阶段: C 与 C++ 交叉深化 (5 周)

这是本路径核心阶段。按 C 认知为基础,深入理解 C++ 的新特性。建议两侧文件配对阅读

#C 侧 (底层原理)C++ 侧 (现代封装)核心对比
1[[ISSUESC 指针剖析]][[ISSUES
2[[ISSUESC malloc/free]][[ISSUES
3(已完成)[[ISSUESC++ 命名空间]]
4(已完成)[[ISSUESC++ 预处理器]]
5[[ISSUESC struct/union]][[ISSUES
6[[ISSUESC 手写 OOP]][[ISSUES
7(OOP 延伸)[[ISSUESC++ 继承]]
8[[ISSUESC 手写虚函数表]][[ISSUES
9(新特性)[[ISSUESC++ 运算符重载]]
10(新特性)[[ISSUESC++ 函数模板]]
11(新特性)[[ISSUESC++ 异常处理]]
12[[ISSUESC 标准库]][[ISSUES
13(新特性)[[ISSUESC++ 多线程]]
14(新特性)[[ISSUESC++ Web编程]]
15[[ISSUESC 标准库]][[ISSUES
16[[ISSUESC 信号]][[ISSUES

第五阶段: STL 容器库 + 功能库 (2 周)

在有 C 底层认知和 C++ OOP 基础后,学习 STL 事半功倍。

STL 容器 (按使用频率排序):

功能库 (按需):


第六阶段: 数据结构 + 算法 (4 周)

DSA 学习路线 推进,用 C++ STL 实现。

Phase 1 线形结构:

Phase 2 核心结构:

Phase 3 图与进阶:

算法技巧 (按 DSA 的 Phase 3 顺序):

选学:


第七阶段: 汇编基础 (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)

语言官方文档