阮一峰-C语言入门教程
阮一峰-C 语言入门教程
给大家报告下,阮一峰老师的《C 语言入门教程》于 2021 年 9 月 7 日上线了!
对,和往常一样,这个教程是开源的,采用知识共享许可证,源码托管在 GitHub,大家可以自由使用。
在线阅读地址也有:
我第一时间就拜读了一遍,受益匪浅!可以说目前我见到的最好的 C 语言入门教程了,没有之一!
要知道,国内的绝大多数高校,大一都会安排 C 语言这门课,教材通常会选择谭浩强的 C 语言程序设计,但这本书在网上的风评极差。
而阮一峰老师的作品,想必大家都有所耳闻,硬核的同时,又通俗易懂,深受广大读者的喜欢。
福音啊!我要狂吹阮一峰了老师的这份《C 语言入门教程》。
考虑到很多小伙伴喜欢 PDF 版的,我就立马给准备了!
需要的小伙伴请扫描下方的二维码关注作者的原创公众号「沉默王二」回复关键字「08」就可以拉取到下载链接了。
也可以微信搜「沉默王二」关注后回复关键字「08」。
之前给大家推荐的学习 C 语言的视频教程有浙大翁恺教授的《C 语言程序设计》,在 B 站上和中国大学慕课网上都可以看得到。
那配上阮一峰老师的这个在线文档教程,可以说是完美!
我对这份教程是非常满意的,该讲的地方都讲到了,示例也给了很多,对初学者来说,完全够用了。
阮一峰老师在写这份《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 代码,查看结果,非常方便。
CodingGround 网址:https://www.tutorialspoint.com/compile_c_online.php
C 语言是一种编译型语言,源码是文本文件,本身是无法执行的,需要通过编译器,生成二进制的可执行文件。
编译器将代码从文本翻译成二进制指令的过程,被称为编译阶段,又称为“编译时”(compile time),跟运行阶段(又称为“运行时”)相区分。
C 语言中,指针是令初学者头痛的一块内容,所以我这里简单给大家聊两句。
指针是什么?它是一个值,这个值代表一个内存地址,因此,指针就相当于指向某个内存地址的路标。
字符*表示指针,通常跟在类型关键字的后面,表示指针指向的是什么类型的值。比如,char*
表示一个指向字符的指针,float\*
表示一个指向 float 类型的值的指针。
*这个符号除了表示指针以外,还可以作为运算符,用来取出指针变量所指向的内存地址里面的值。
而&运算符用来取出一个变量所在的内存地址。
背会理解了这几句,可以说指针的理论基础就有了。跨过去指针这一关,C 语言最硬核的部分也就掌握了。
需要阮一峰老师的这份《C 语言入门教程》的小伙伴请扫描下方的二维码关注作者的原创公众号「沉默王二」回复关键字「08」就可以拉取到下载链接了。
也可以微信搜「沉默王二」关注后回复关键字「08」。
OK,今天就简单聊到这里,希望阮一峰老师的这份教程能帮助到大家。我们下期见~