跳到正文
XiaoGao 的个人博客

NO.01 · 编程语言

C 语言学习笔记:从语法基础到指针与内存

一套循序渐进的 C 语言学习笔记,覆盖开发环境、数据类型、流程控制、数组与函数、指针与指针安全、预处理器、动态内存分配与文件操作。

发布 DATE
字数 WORDS
957
阅读 READ
3 分钟

C 语言是嵌入式开发的起点,也是理解内存、编译与硬件之间关系的第一扇门。这套笔记从编程基础和开发环境开始,逐步覆盖 C 语言的核心语法、数据类型、指针、动态内存和文件操作,适合系统学习、课堂复习和编写 C 语言练习程序。

学习路线

建议按照以下顺序阅读:

  1. 了解程序、编程语言和 C 语言的发展背景;
  2. 配置 C 语言开发环境,完成第一个 C 程序;
  3. 学习变量、常量、进制、数据类型和类型转换;
  4. 掌握运算符、表达式和程序控制语句;
  5. 学习数组、字符串、函数和作用域;
  6. 理解指针、指针与数组的关系,以及函数指针;
  7. 学习预处理器、自定义数据类型和结构化数据;
  8. 掌握动态内存分配和基本文件操作;
  9. 使用断点调试和课后练习巩固知识。

笔记 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 仓库:

    ↑↓ 选择↵ 打开>theme · >random · >top · >archive