C 语言是嵌入式开发的起点,也是理解内存、编译与硬件之间关系的第一扇门。这套笔记从编程基础和开发环境开始,逐步覆盖 C 语言的核心语法、数据类型、指针、动态内存和文件操作,适合系统学习、课堂复习和编写 C 语言练习程序。
学习路线
建议按照以下顺序阅读:
- 了解程序、编程语言和 C 语言的发展背景;
- 配置 C 语言开发环境,完成第一个 C 程序;
- 学习变量、常量、进制、数据类型和类型转换;
- 掌握运算符、表达式和程序控制语句;
- 学习数组、字符串、函数和作用域;
- 理解指针、指针与数组的关系,以及函数指针;
- 学习预处理器、自定义数据类型和结构化数据;
- 掌握动态内存分配和基本文件操作;
- 使用断点调试和课后练习巩固知识。
笔记 01:入门与基础语法
第一份笔记覆盖 C 语言入门和基础语法:
- C 语言概述:程序的概念、计算机语言简史、C 语言的发展与发行版本;
- 开发快速入门:开发工具选择、MinGW-w64 安装、VS Code 安装与配置;
- 第一个 C 程序:创建、编译、运行和分析
Hello World; - 程序运行机制:预处理、编译、汇编、链接和运行;
- 变量与常量:变量声明、输入输出、标识符、关键字、
#define和const; - 二进制与进制转换:二进制、十进制、十六进制,以及原码、反码和补码;
- 数据类型:整数、浮点数、字符、布尔类型、格式占位符和类型转换;
- 运算符:算术、关系、逻辑、赋值、位运算、三元运算符和优先级;
- 程序控制语句:顺序、分支、
switch、while、do...while、for、嵌套循环及跳转控制; - 断点调试:断点设置、逐过程调试和逐断点调试。
笔记 02:指针、内存与文件
第二份笔记在基础语法之上继续介绍 C 语言的核心能力:
- 数组与字符串:一维数组、字符数组、多维数组、数组遍历和数组越界;
- 函数:函数声明、调用、参数、返回值、函数原型和作用域;
- 递归与常用函数:递归函数,以及字符串、输入输出、日期时间和数学函数;
- 指针:地址、解引用、指针运算、指针与数组、字符指针、函数指针和多级指针;
- 指针安全:空指针、野指针、指针越界和释放后使用等常见问题;
- 预处理器:宏定义、带参数的宏、文件包含和条件编译;
- 自定义数据类型:枚举、结构体、共用体和
typedef; - 动态内存分配:
void *、malloc、calloc、realloc、free以及内存管理原则; - 文件操作:标准输入输出、文件打开与关闭、文件读写和常用文件函数。
开发环境
笔记以 Windows 环境下的 C 语言开发为主要示例,推荐使用:
- Visual Studio Code:编辑 C 语言源代码;
- MinGW-w64:提供 GCC 编译器工具链;
- VS Code 的 C/C++ Extension Pack:提供代码编辑、编译和调试支持。
也可以根据个人习惯选择 Visual Studio、Code::Blocks、CLion 或在线 C 编译器。
阅读建议
- 先通读概念,再运行文档中的代码示例;
- 为每个章节单独创建练习目录,记录编译器输出和调试过程;
- 重点练习指针、数组、函数和动态内存之间的关系;
- 涉及编译器、操作系统或平台差异的内容,应结合当前开发环境进行验证。
仓库
笔记与文档源码见 GitHub 仓库: