--- title: 👏下载→阮一峰C语言入门教程 shortTitle: 👏下载→阮一峰C语言入门教程 category: - PDF tag: - PDF description: 给操作系统学习资料下载 head: - - meta - name: keywords content: C语言教程,阮一峰,阮一峰 C语言,C语言入门教程 --- 给大家报告下,阮一峰老师的《**C语言入门教程**》于 2021 年 9 月 7 日上线了! 对,和往常一样,这个教程是开源的,采用知识共享许可证,源码托管在 GitHub,大家可以自由使用。 >[https://github.com/wangdoc/clang-tutorial](https://github.com/wangdoc/clang-tutorial) 在线阅读地址也有: >[https://wangdoc.com/clang/](https://wangdoc.com/clang/) 我第一时间就拜读了一遍,受益匪浅!可以说目前我见到的最好的 C语言入门教程了,没有之一! 要知道,国内的绝大多数高校,大一都会安排 C 语言这门课,教材通常会选择谭浩强的C语言程序设计,但这本书在网上的风评极差。 而阮一峰老师的作品,想必大家都有所耳闻,硬核的同时,又通俗易懂,深受广大读者的喜欢。 福音啊!我要狂吹阮一峰了老师的这份《**C语言入门教程**》。 考虑到很多小伙伴喜欢 PDF 版的,我就立马给准备了! 需要的小伙伴请扫描下方的二维码关注作者的原创公众号「**沉默王二**」回复关键字「**08**」就可以拉取到下载链接了。 ![扫码关注后回复「08」关键字](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/gongzhonghao.png) 也可以微信搜「**沉默王二**」关注后回复关键字「**08**」。 之前给大家推荐的学习 C语言的视频教程有浙大翁恺教授的《C语言程序设计》,在 B 站上和中国大学慕课网上都可以看得到。 那配上阮一峰老师的这个在线文档教程,可以说是完美! ![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/download/yuanyifeng-c-language-4a28a9bd-0db4-419c-8aaf-fa102323282d.png) 我对这份教程是非常满意的,该讲的地方都讲到了,示例也给了很多,对初学者来说,完全够用了。 阮一峰老师在写这份《C语言入门教程》的时候还是花费了很多心思的,因为 C 代码的写法实在是太自由了,而平常工作中又确实很少有机会写 C 代码,所以前前后后花了 6 个多月的时间。 C语言最初是作为 Unix 系统的开发工具而发明的。1972年,丹尼斯·里奇和布莱恩·柯林汉在 B 语言的基础上重新设计了一门新语言,这种新语言取代了 B 语言,所以称为 C 语言。 1973年,整个 Unix 系统都使用了 C 语言重写。此后,C 语言开始快速流传,广泛用于各种操作系统和系统软件的开发。 除了用于计算机操作系统的编写,C语言现在主要用于嵌入式系统的开发,骑车、照相机、家用电器等设备的底层系统都是用 C 语言编程的。 C语言能够直接操作硬件、管理内存、跟操作系统交互,这使得它成为了一种非常接近底层的编程语言,非常适合有极高性能要求的程序。 C语言对程序员的限制很少,它假设程序员知道自己在干嘛,不会限制程序员做各种骚操作,想干嘛就干嘛,反正后果自负,哈哈哈。 C语言的哲学就是“极度相信程序员,不妨碍他们做事”,所以,C语言让程序员自己管理内存,没有垃圾回收功能,也不提供类型检查、数组下标范围检查、指针位置检查等防御措施。 表面上看,这似乎很危险,但对于有一定水平的程序员来说,简直就是福音,大胆去编程,解放生产效率就对了。 另外一方面,C语言的 debug 不是很容易,写代码的时候必须要富有缜密的逻辑性,一旦出错,是很难找补的。 C语言在武林界的地位就相当于少林的地位,天下武功皆出少林,很多流行的编程语言都是以 C语言为基础的,比如说C++、Java、C#、JavaScript 等等,有了 C语言的基础,再学习这些语言都会有很大帮助。 经过多年的发展,C语言有蛮多版本的,1999 年 C99 是目前最流行的 C 版本。 常见的 C 语言编译器是自由软件基金会推出的 GCC 编译器,它可以免费使用。Linux 和 Mac 系统可以直接安装 GCC,Windows 系统可以安装 MinGW。 不过网上也有蛮多在线编译器的,可以直接在网页上模拟运行 C 代码,查看结果,非常方便。 ![](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/download/yuanyifeng-c-language-4dfd8f91-893f-401f-81ad-488e08934c07.png) >CodingGround网址:[https://www.tutorialspoint.com/compile_c_online.php](https://www.tutorialspoint.com/compile_c_online.php) C 语言是一种编译型语言,源码是文本文件,本身是无法执行的,需要通过编译器,生成二进制的可执行文件。 编译器将代码从文本翻译成二进制指令的过程,被称为编译阶段,又称为“编译时”(compile time),跟运行阶段(又称为“运行时”)相区分。 C语言中,指针是令初学者头痛的一块内容,所以我这里简单给大家聊两句。 **指针是什么?它是一个值,这个值代表一个内存地址,因此,指针就相当于指向某个内存地址的路标**。 字符*表示指针,通常跟在类型关键字的后面,表示指针指向的是什么类型的值。比如,`char*`表示一个指向字符的指针,`float*`表示一个指向float类型的值的指针。 *这个符号除了表示指针以外,还可以作为运算符,用来取出指针变量所指向的内存地址里面的值。 而&运算符用来取出一个变量所在的内存地址。 背会理解了这几句,可以说指针的理论基础就有了。跨过去指针这一关,C 语言最硬核的部分也就掌握了。 >需要阮一峰老师的这份《C语言入门教程》的小伙伴请扫描下方的二维码关注作者的原创公众号「**沉默王二**」回复关键字「**08**」就可以拉取到下载链接了。 ![扫码关注后回复「08」关键字](https://cdn.tobebetterjavaer.com/tobebetterjavaer/images/gongzhonghao.png) 也可以微信搜「**沉默王二**」关注后回复关键字「**08**」。 OK,今天就简单聊到这里,希望阮一峰老师的这份教程能帮助到大家。我们下期见~