Skip to content
This repository has been archived by the owner on Aug 10, 2024. It is now read-only.

Latest commit

 

History

History
143 lines (121 loc) · 5.5 KB

总纲.md

File metadata and controls

143 lines (121 loc) · 5.5 KB

mdr的C语言教程

注:由于章节数量及顺序尚未确定,本文件有很多不完善的地方

正文目录

语法和标准库模块

  1. 在开始编程之前
  2. 一个简单的C程序
  3. 对象 初步
  4. 数据
  5. 隐式转换
  6. 字符常量 包括Unicode
  7. 字符串 初步
  8. 运算符 表达式
  9. 语句
  10. 函数 初步
  11. 函数 包括递归示例等等
  12. 对象 包括生存期等
  13. 数组 包括多维数组 VLA
  14. 指针 包括 void* 别名
  15. 声明详解
  16. 类型限定符 const volatile restrict
  17. 复合字面量
  18. 文件操作
  19. 结构体 (包括柔性数组
  20. 内存对齐
  21. 共用体枚举
  22. 链接存储期
  23. 查找
  24. 位操作 布尔代数
  25. 可变参数 <stdarg.h>
  26. 再谈printf()scanf()
  27. 泛型 _Generic
  28. 属性
  29. 预处理器 附带一个#if 0小技巧
  30. 内存管理
  31. 错误处理 <errno.h> <assert.h> static_assert
  32. C标准库的介绍和文档
  33. C输入输出库 <stdio.h>
  34. 一些预定义的 <stddef.h> <stdint.h> <limits.h>
  35. C数学库 <math.h> 一部分<stdlib.h>
  36. C复数库 <complex.h>
  37. C二分查找和快速排序函数(in <stdlib.h>
  38. C随机数生成(in <stdlib.h>
  39. C时间日期库 <time.h>
  40. C字符处理库 <ctype.h>
  41. C字符串API <string.h>
  42. C执行控制函数(in <stdlib.h>
  43. C线程库 <thread.h>
  44. C原子操作库 <stdatomic.h>

小示例

  1. BMI测试 以及改进版 if语句
  2. 简易计算器 自定义函数和分支语句
  3. 密码验证 字符串的应用
  4. 分解质因数
  5. 高精度整数
  6. 生命游戏
  7. 五子棋人机对弈
  8. 卡牌游戏对战
  9. 复数计算器
  10. 矩阵运算
  11. 桌面计算器 分析器(递归下降)
  12. json parser 词法分析

练习

  1. 字母金字塔 for循环 1 2
  2. 猜数游戏 random

数据结构与算法模块

算法

  1. 算法的定义
  2. 分析算法的方法
  3. 时间/空间复杂度
  4. 分治法递归式主方法和Akra-Bazzi方法
  5. 排序
  6. dp
  7. 贪心
  8. dfsbfs
  9. 最小生成树最短路径
  10. 矩阵运算
  11. 线性规划
  12. 傅里叶变换FFT
  13. 字符串匹配

数据结构

  1. ADT
  2. 线性表 包括顺序表队列链表
  3. 散列表散列函数
  4. 二叉搜索树红黑树
  5. B树

项目案例模块

  1. C 项目结构 和 “为什么要分出头文件”
  2. CMake
  3. C大型项目源码的阅读
  4. C源码示例 - kilo
  5. C网络编程
  6. 网络基础 - ISO七层模型
  7. 网络基础 - TCP
  8. 网络基础 - UDP
  9. C源码示例 - libuv
  10. 项目:多人聊天室
  11. 网络基础 - HTTP
  12. 项目:web服务器mdr_server
  13. 编译原理基础 - 词法分析(长)
  14. 编译原理基础 - 语法分析(长)
  15. 编译原理基础 - 运行时刻环境
  16. 编译原理基础 - 机器无关的代码优化
  17. C源码示例:lua
  18. 项目:解释型语言mdr lang
  19. 操作系统 - kernel
  20. 操作系统 - shell
  21. 后面不敢往下写了(悲

番外目录

  1. IEEE754
  2. Unicode
  3. VSCode+gcc

奇奇怪怪的目录

  1. 编程交流群生存指南
  2. 编程交流平台纪行

“示例”指在视频中完整写出来的;“案例”指视频中不完整写出来,留一部分让听者完成的;“项目”一般是很长的,在视频中似乎也很难完整写出来

本教程分四部分

  1. 语法和标准库 本教程不涉及编译器扩展,不讲用C写桌面程序
  2. 小示例和练习(配合第一部分)
  3. 数据结构与算法
  4. 项目案例