C语言基础
C与C++
在很大程度上,C++是C的超集,这意味着一个有效的C程序也是一个有效的C++程序。
C和C++的主要区别是,C++支持许多附加特性。但是,C++中有许多规则与C稍有不同。
这些不同使得C程序作为C++程序编译时可能以不同的方式运行或根本不能运行。
| 方向 | 语言 | 说明 |
|---|---|---|
| 嵌入式开发 | C | 使用C编写嵌入式系统,如嵌入式操作系统、嵌入式设备等 |
| 系统、内核、驱动 | C | 使用C编写系统、内核、驱动,如Linux、Windows等 |
| 高性能计算 | C | 使用C编写高性能计算,如OpenCL、CUDA等 |
| 跨语言绑定API | C | 使用C编写跨语言绑定API,如Python、Java等 |
| Python性能优化 | C | 使用C为Python编写高性能扩展模块 |
| Python-C互操作 | C | Python调用C库、C调用Python函数 |
| 游戏开发 | C++ | 使用C++编写游戏引擎,如Unity、Unreal Engine等 |
| 人工智能 | C++ | 使用C++编写人工智能算法,如TensorFlow、PyTorch等 |
| 桌面应用开发 | C++ | 使用C++编写桌面应用,如微信、QQ等 |
| 大型软件系统 | C++ | 使用C++编写大型软件系统,如操作系统、数据库等 |
教材选择
C语言诞生于 1972 年,至今已经涌现出诸多教程和教材,其内容基本一致,但讲述方式和分类排版不同。以下是常见的入门教材与推荐说明:
| 教材名 | 作者 | 页数 | 豆瓣评分 | 说明 |
|---|---|---|---|---|
| 《C Primer Plus》(第6版) | Stephen Prata | 730 | 9.4 | 全球众多高校和自学者用作入门教材的经典之作 |
| 《C语言程序设计 : 现代方法》(第2版) | K. N. King | 600 | 9.4 | 被哈佛、MIT等名校采用,适合大学课程 |
| 《C语言程序设计》(第5版) | 谭浩强 | 370 | 6.5 | 中国C语言教材鼻祖,国内高校广泛使用,但只讲规则,不讲原因。对初学者不友好。 |
| 《C程序设计语言》(第2版) | Brian W. Kernighan & Dennis M. Ritchie | 258 | 9.4 | 掌握C核心思想和标准库,由C语言发明者亲自撰写,被誉为"C语言圣经" |
info
本教程基于《C Primer Plus》,目标是压缩其50%的体积,按知识点重排同时保持其核心内容。