跳到主要内容
CodeAtlas
C

C

10 周

理解计算机本质的第一门语言

适合谁:计算机专业学生、想打好底层基础、准备学 C++/嵌入式的人

难度
共 4 个阶段 · 10 周
开始之前
无(但需要耐心)

这条路上最常见的三个误区

  • 把 C 当成「小一号的 C++」 —— 它是理解内存与操作系统的入口,不是过渡语言
  • 指针看不懂就先跳过 —— 后面的内存模型、系统调用全都会塌
  • 只看书不写 —— C 的坑只能靠段错误和调试器教育你

第一周就做这三件事

  1. 1装 gcc / clang + gdb,能编译多文件工程
  2. 2写 6 个指针练习:交换、数组遍历、字符串反转、二级指针、函数指针、链表插入
  3. 3用 AddressSanitizer 跑一次,亲眼看到内存越界的报错长什么样

「准备期」是拖延的另一种说法。先跑起来,再谈规划。

分阶段执行

按每周 10–12 小时估算,有基础可压缩
学习进度 0%0/4 阶段 · 约 0/10 周
  1. 1

    阶段一 · 语法与内存

    建议 3 周
    阶段目标

    理解指针,不再害怕段错误

    知识点
    基本类型与运算符数组与字符串指针与地址运算结构体与枚举函数与递归
    产出项目

    手写字符串处理库(strlen/strcpy/strstr)

    查看项目要求
    验收标准

    能手写链表增删改查;能解释指针与数组的区别

  2. 2

    阶段二 · 内存管理

    建议 2 周
    阶段目标

    掌握动态内存与调试

    知识点
    malloc/free 与内存泄漏栈与堆多文件编译与 MakefileGDB 调试Valgrind 检测
    产出项目

    动态数组容器(支持扩容与释放)

    查看项目要求
    验收标准

    用 Valgrind 跑出 0 泄漏;能手写 Makefile

  3. 3

    阶段三 · 系统编程

    建议 3 周
    阶段目标

    理解程序如何与操作系统交互

    知识点
    文件 IO 系统调用进程与 fork信号Socket 编程多线程 pthread
    产出项目

    简易 HTTP 服务器(支持静态文件与并发)

    查看项目要求
    验收标准

    浏览器能访问你写的服务器;能解释阻塞与非阻塞

  4. 4

    阶段四 · 数据结构实战

    建议 2 周
    阶段目标

    用 C 实现常用数据结构

    知识点
    动态数组 / 链表 / 栈 / 队列哈希表二叉树排序与查找
    产出项目

    一个可用的小型 key-value 存储(含持久化)

    查看项目要求
    验收标准

    能分析各结构的时间复杂度;代码无内存错误

其他路径