启程:为什么我们还要学 C 语言?
如果你想认真地学一门编程语言,并且不止步于“会用”,而是渴望理解计算机到底是怎么工作的——那么 C 语言,注定是你绕不开的一站。
在 Python 大行其道、Java 纵横企业、Rust 快速崛起的今天,有人可能会问:学 C 是不是落伍了?这篇文章,就是给你的答案。
一、C 语言的老,是一种“硬核”的老
C 语言诞生于 1972 年,由丹尼斯·里奇在贝尔实验室创造,最初是为了写 UNIX 操作系统。几乎可以说,C 语言和 UNIX 是一对孪生兄弟。
从那以后,C 语言就成了整个计算机世界的基石:
- Linux 内核,90% 以上是 C 语言
- Windows NT 内核的核心,是 C
- 数据库(MySQL、PostgreSQL、Redis)底层,是 C
- Python 的解释器 CPython,是 C 写的
- 你玩过的《毁灭战士》《雷神之锤》,引擎是 C
甚至今天无处不在的物联网设备、自动驾驶系统的实时控制模块、航天器的飞控软件,核心代码里依然充满 C。
C 语言从来不是一个“全能型”语言,它不擅长做网站,不擅长写 App 界面,但它牢牢掌控着软件世界的“底层基建”。只要世界上还有 CPU、内存、操作系统,C 的位置就不可替代。
二、为什么不用 Python 或 Java 替代 C?
并不是 C 比它们好,而是它们的职责不同。用一个比喻来理解:
- C 语言是造汽车的工程师:你要设计发动机、考虑燃油效率、关心机械结构。
- Python 是开车的人:你只管踩油门、打方向盘,不用知道发动机内部发生了什么。
- Java 是公共交通调度系统:帮你管理大量复杂的业务逻辑,保证安全、稳定、跨平台。
用 Python 写一个 Web 后端,可能几百行代码就够了;但让它直接操作硬件寄存器、精确管理内存,它做不到。C 语言给你的,是对计算机最直接、最赤裸的控制力。你可以操控每一个比特,决定每一块内存的生命周期。
同样,Java 的虚拟机提供了自动内存管理(垃圾回收),但也带来了一堵看不见的墙——你无法直接掌控内存布局,而这恰好是系统编程、高性能计算、嵌入式开发中最关键的能力。
学 C,就是越过那些“舒适的抽象层”,直接和机器对话。
三、学 C 的真正价值,不只是语言本身
很多学完 C 的人,会发现自己对计算机的理解发生了质变。比如:
- 以前只知道“定义变量”,学完 C 会明白变量在内存的哪个区域(栈、堆、静态区)
- 以前用 Python 传参数,学完 C 才懂什么叫“值传递”和“指针传递”
- 以前写程序崩溃就重启,学完 C 知道段错误、缓冲区溢出、内存泄漏是什么
- 再看其他高级语言的很多设计(如 Java 的引用、Python 的对象模型),会有一种恍然大悟的感觉
著名计算机科学家乔尔·斯波斯基曾说:“不会 C 语言的程序员,永远无法理解计算机。”
可能有些绝对,但绝非毫无道理。如果你想成为一名优秀的软件工程师,特别是从事以下方向,C 几乎是必修课:
- 嵌入式系统与 IoT
- 操作系统内核与驱动开发
- 高性能后台服务(如数据库、消息中间件)
- 游戏引擎与图形学底层
- 安全研究(逆向、漏洞挖掘)
- 数字信号处理与硬件加速
哪怕你最终只用 Python 工作,懂 C 也能让你写出更高效、更健壮的代码,因为你心里有了“底层画像”。
四、这个系列要带你走到哪里?
这是一个从绝对零基础到能写小型系统项目的 C 语言实战系列。我把整个旅程设计成了八个阶段:
每一篇都会配上可以跑的完整代码和课后小练习。你不只是读,而是要亲手去写、去改、去调错。编程是一项手艺,看会了不叫会,写出来了才算。
五、做好准备:你的工具箱
要开始写 C 程序,你不需要强大的电脑,也不需要昂贵的软件。三样东西就能出发:
- 一个文本编辑器:强烈推荐 Visual Studio Code(免费、跨平台、支持好),当然 vim、Sublime 甚至记事本也可以。
- 一个 C 编译器:最常用的是 GCC(Linux/macOS 自带或安装),Windows 下可用 MinGW-w64 或直接用 WSL。苹果用户也可以用 Clang(Xcode 命令行工具)。
- 一个终端(命令行):你将在那里编译、运行、看到输出。
下篇文章,我们就手把手搭建环境,从写出你的第一个 hello.c 开始,一步步让它跑起来。
写在最后
或许你早就习惯了“一键运行”的便利,习惯了智能的代码补全和即时的错误提示。但我想邀请你,暂时卸下那些依赖,回到编程最初的样子:一个文本编辑器,一个编译器,一个愿意一行行思考的程序员。
这条路不轻松,但风景绝对值得。
准备好了吗?我们下一章见。
题外话 如果你正在学C语言或计划学C语言,请订阅免费专栏《C语言:从入门到精通》。这是一个通俗易懂,循序渐进的 C 语言博客系列,从最基础的环境搭建一路到高阶的系统编程技巧,帮你构建一个完整的知识体系。不需要积分,不需要VIP!



