C语言教程¶
什么是 C 语言?¶
C 语言是一门面向过程的编程语言,由 Dennis Ritchie 在 1972 年于贝尔实验室开发。它是现代编程语言的基石,操作系统(如 Linux、Windows)、嵌入式系统、数据库等底层软件大多用 C 语言编写。
为什么学习 C 语言?¶
- 语法简洁:核心语法少而精,适合初学者掌握编程本质
- 贴近硬件:指针和内存管理让你深入理解计算机体系结构
- 竞赛首选:几乎所有的编程竞赛都支持 C/C++ 语言
- 一通百通:掌握 C 语言后学习 C++、Java、Python 等语言会事半功倍
- 就业广泛:嵌入式、操作系统、网络协议栈、游戏引擎等领域大量使用 C 语言
教程目录¶
| # | 章节 | 内容 |
|---|---|---|
| 1 | Hello World | 开发环境搭建、第一个程序、基本结构 |
| 2 | 变量与数据类型 | 基本数据类型、变量声明、常量、类型转换 |
| 3 | 运算符与表达式 | 算术、关系、逻辑、位运算符、优先级 |
| 4 | 流程控制 | if-else、switch、for、while、break、continue |
| 5 | 数组与字符串 | 一维/二维数组、字符数组、字符串函数 |
| 6 | 函数 | 函数定义、参数传递、递归、作用域 |
| 7 | 指针 | 指针基础、指针与数组、指针与函数 |
| 8 | 结构体与联合体 | 结构体定义、嵌套、typedef、联合体 |
| 9 | 动态内存管理 | malloc、calloc、realloc、free |
| 10 | 文件操作 | fopen、fclose、fread、fwrite、fprintf |
| 11 | 预处理 | 宏定义、条件编译、头文件包含 |
| 12 | 常见数据结构 | 链表、栈、队列的 C 语言实现 |
推荐学习路线¶
graph LR
A[Hello World] --> B[变量与数据类型]
B --> C[运算符与表达式]
C --> D[流程控制]
D --> E[数组与字符串]
E --> F[函数]
F --> G[指针]
G --> H[结构体与文件操作]
H --> I[综合实战项目]
学习建议¶
| 阶段 | 章节 | 预计时间 |
|---|---|---|
| 入门 | 1~4 章 | 2~3 周 |
| 基础 | 5~6 章 | 2~3 周 |
| 进阶 | 7~9 章 | 3~4 周 |
| 高阶 | 10~12 章 | 2~3 周 |
学习建议
每学完一个小节,务必亲自编写代码运行验证。编程是一门实践学科,只看不练等于没学。建议每天坚持编写至少 30 行代码。
开发环境推荐¶
编译器与 IDE¶
| 操作系统 | 编译器 | IDE |
|---|---|---|
| Windows | MinGW-w64 / MSVC | VS Code / CLion / Dev-C++ |
| macOS | Clang (Xcode Command Line Tools) | VS Code / Xcode |
| Linux | GCC | VS Code / Vim / CLion |
环境配置教程¶
Windows(VS Code + MinGW):
1. 下载安装 VS Code
2. 安装 C/C++ 扩展
3. 下载 MinGW-w64 并配置环境变量
4. 在终端输入 gcc --version 验证安装
Linux(GCC):
第一个 C 程序¶
编译运行:
C 语言核心特性速览¶
基本数据类型¶
| 类型 | 大小(32位) | 取值范围 |
|---|---|---|
char |
1 字节 | -128 ~ 127 |
int |
4 字节 | -2^31 ~ 2^31-1 |
float |
4 字节 | ~7 位有效数字 |
double |
8 字节 | ~15 位有效数字 |
指针¶
结构体¶
struct Student {
char name[50];
int age;
float score;
};
struct Student stu = {"小明", 18, 95.5};
printf("%s %d %.1f\n", stu.name, stu.age, stu.score);
配套练习与项目¶
学习完基础语法后,建议完成以下实战项目巩固知识:
| 项目 | 涉及知识点 |
|---|---|
| 简易计算器 | 基本语法、条件判断、函数 |
| 贪吃蛇游戏 | 二维数组、控制台编程 |