介绍博文: http://www.ruanyifeng.com/blog/2021/09/c-language-tutorial.html

Github仓:https://github.com/wangdoc/clang-tutorial

本教程采用知识共享 署名-相同方式共享 3.0协议。

序:

作者:阮一峰

我知道,这件事有点奇怪,让我来解释一下。

最近两三年,我想做一些服务器开发,一直在学习这方面的技术。去年发布的《Bash 脚本教程》,就是在学习 Shell 的时候写的。后来学习后端编程语言,深感好多基础的东西需要补课,就回过头重新开始看 C 语言。

我上一次学习 C 语言,还是在学校里。印象中,C 语言不容易,复杂类型很难声明和解读。但是,这一次重新学习,意外觉得 C 语言并不复杂,语法点少,没有类,只能使用命令式编程(imperative programming),跟脚本语言(比如 JavaScript)相比,语法描述要容易很多。加上网上很少 C 语言中文教程,质量也不理想,于是就萌生了自己写教程的念头。

最初的想法是,在我的学习笔记基础上,加一些示例就可以了。但是真的动手以后,发现工作量很大,尤其是后来决定 C 语言标准库也包括在教程中。C 的语法点虽然不多,但完整的教程至少要20几章,而且 C 代码写法太自由,不少疑难之处还要去查看参考书籍。所以写得很慢,从春节后到现在,整整写了六个多月,终于写完了。

与以往一样,这个教程是开源的,采用知识共享许可证,源码托管在 GitHub ,大家可以自由使用。点击下面网址,在线阅读全书

C 语言教程

  1. 简介
  2. 基本语法
  3. 变量
  4. 运算符
  5. 流程控制
  6. 数据类型
  7. 指针
  8. 函数
  9. 数组
  10. 字符串
  11. 内存管理
  12. struct结构
  13. typedef命令
  14. Union结构
  15. Enum类型
  16. 预处理器
  17. I/O函数
  18. 文件操作
  19. 变量说明符
  20. 多文件项目
  21. 命令行环境
  22. 多字节字符
  23. 标准库
    • assert.h
    • ctype.h
    • errno.h
    • float.h
    • inttypes.h
    • iso646.h
    • limits.h
    • locale.h
    • math.h
    • signal.h
    • stdint.h
    • stdlib.h
    • stdio.h
    • string.h
    • time.h
    • wchar.h
    • wctype.h