C语言学习笔记

这本笔记按入门、数据、流程、指针、内存、工程和实践七个单元整理 C 语言核心知识,并补齐进制、编译、二维数组、位运算、随机数与调试等关键主题。

这本笔记以 C语言中文网教程 的知识主线为参照,但没有直接照搬原目录,而是按当前站点的笔记规范重组成更适合复习的章节结构。

组织原则只有两条:

  1. 先把 C 语言真正反复出现的基础概念讲清楚,例如数据、地址、作用域、生命周期、编译和文件。
  2. 再把容易混淆的主题单独拆出来,例如二维数组、复杂指针、位运算、随机数和调试。

C语言学习路线

入门准备 -> 数据与运算 -> 流程控制与函数 -> 数组与指针 -> 自定义类型与内存 -> 输入输出与工程基础 -> 实践补充

入门准备

  • 1.1 C语言简介
  • 1.2 环境设置
  • 1.3 程序结构与基础语法
  • 1.4 进制、编码与内存基础
  • 1.5 编译、链接与诊断基础

这一部分的目标:

  • 建立对 C 语言定位、应用场景和学习重点的整体认识。
  • 搭好编辑器、编译器、终端三件套,并能独立编译运行程序。
  • 明白二进制、字符编码、字节、源文件、编译和链接这些后面反复出现的基础概念。

数据与运算

  • 2.1 数据类型
  • 2.2 变量
  • 2.3 常量
  • 2.4 存储类
  • 2.5 运算符
  • 2.6 强制类型转换

这一部分会帮助你:

  • 认识整数、浮点、字符、布尔、void 等常见类型的边界与用途。
  • 理解变量定义、初始化、作用域、生命周期和链接属性。
  • 写出结果明确、类型转换清晰、格式化输出正确的表达式。

流程控制与函数

  • 3.1 判断语句
  • 3.2 循环
  • 3.3 函数
  • 3.4 作用域规则
  • 3.5 递归与可变参数

这一部分更偏程序组织能力:

  • 学会让程序按条件、循环和函数调用的顺序执行。
  • 理解值传递、函数原型、局部变量和全局变量之间的关系。
  • 能判断递归什么时候好用,什么时候会带来额外成本。

数组与指针

  • 4.1 数组
  • 4.2 枚举与typedef
  • 4.3 指针
  • 4.4 函数指针与回调函数
  • 4.5 字符串
  • 4.6 二维数组与变长数组
  • 4.7 数组指针、指针数组与二级指针

这一部分是 C 语言的核心:

  • 学会用数组处理一组连续数据。
  • 理解地址、解引用、指针运算和数组退化。
  • 看懂二维数组、复杂指针声明、字符串和回调函数这些常见但容易卡住的写法。

自定义类型与内存

  • 5.1 结构体
  • 5.2 共用体
  • 5.3 位域
  • 5.4 内存管理
  • 5.5 未定义行为
  • 5.6 位运算与字节序

这一部分会带你进入更底层的理解:

  • 学会组织复杂数据并分析内存布局。
  • 学会动态申请和释放内存,建立基本的资源所有权意识。
  • 识别位操作、字节序和未定义行为这种“程序能跑但不一定可靠”的问题源头。

输入输出与工程基础

  • 6.1 输入与输出
  • 6.2 文件读写
  • 6.3 预处理器与头文件
  • 6.4 错误处理与安全函数
  • 6.5 命令行参数

这一部分偏向实际开发:

  • 学会和终端、文件、标准流打交道。
  • 学会组织多文件工程,使用头文件、宏和条件编译。
  • 学会检查错误、区分 stdoutstderr,写出更稳妥的 C 程序。

实践补充

  • 7.1 排序算法入门
  • 7.2 随机数与简单模拟
  • 7.3 调试基础与断言

这一部分用于把前面学过的数组、循环、文件、库函数和调试手段组合起来,形成更完整的学习闭环。

推荐学习方式

  1. 先按顺序读完前三个单元,再进入复杂指针、结构体、文件与调试。
  2. 每一章都至少亲手敲一遍示例,尤其是数组、指针、动态内存和文件相关章节。
  3. 遇到“常见错误”时,最好顺手写一个错误版本,观察编译器或运行时会给出什么反馈。
  4. 学到函数、数组、字符串和命令行参数后,就可以开始写一些命令行小工具巩固。
  5. 学到调试章节后,尽量在调试器里单步跟一次指针、数组和函数调用过程,会比只看代码更容易建立直觉。
本文禁止转载
使用 Hugo 构建
主题 StackJimmy 设计 由 Hobin 魔改
最近构建时间:2026-04-17 19:07:48 CST
载入天数...载入时分秒...
发表了 1 篇文章 · 发表了 152 篇笔记 · 总计 18 万 0 千字