零基础入门学习C语言:带你学C带你飞
上QQ阅读APP看书,第一时间看更新

前言

为什么要学习C语言

众所周知,C语言是最古老的几门编程语言之一,它至今仍然服务于现代社会。我们来看一下TIOBE排行榜近几年的数据(见图0-1),TIOBE排行榜是根据互联网上有经验的程序员、学校课程和第三方厂商提供的数据,并使用搜索引擎(如Google、Bing、Yahoo!、百度)以及Wikipedia、Amazon、YouTube统计出的排名数据,因此可以准确地反映出某个编程语言的热门程度。

图0-1 TIOBE排行榜(数据来自TIOBE官网,2019年3月数据)

从图0-1中可以看到,C语言虽然古老,但却是“老当益壮”,近几年仍然常年位居前列。C语言既没有Java语言的跨平台能力,又没有“新潮”的面向对象的编程思想,也没有垃圾回收机制……由于C语言的数组没有做边界检查,导致了缓冲区溢出攻击的盛行。尽管如此,仍然有那么多程序员“钟情”于C语言,这是为什么呢?

C语言是伴随着UNIX操作系统的兴起而流行的,其语义简明清晰,功能强大而不臃肿,简洁而又不过分简单,实在是工作、学习必备之“良友”。

C语言也是一个比较少见的应用领域极为广泛的语言。无论是Windows操作系统的API,还是Linux操作系统的API,或者是想给Ruby、Python编写扩展模块,C语言形式的函数定义都几乎是唯一的选择。C语言就好像一个中间层或者是“胶水”,如果想把不同编程语言实现的功能模块混合使用,C语言是最佳的选择。

C语言还可以编写服务器端软件,如当前流行的Apache和Nginx都是使用C语言编写的;在界面开发层面,C语言也颇有建树,如大名鼎鼎的GTK+就是使用C语言开发出来的;由于C语言是一种“接近底层”的编程语言,因此也自然成为了嵌入式系统开发的最佳选择。

除此之外,大多数编程语言自身的第一个版本也是通过C语言实现的,借助C程序“一次编写,处处编译”的特性,最大地保证了这些程序语言的可移植性。

关于本书

本书适合入门学习C语言的读者,也适用于对编程一无所知,但渴望用编程改变世界的朋友。

概念是死的,靠读、背、记的方法确实可以通过老师的测验,但却很难实现举一反三,将所学知识应用到现实开发中。因此,本书提倡“理解为主,应用为王”。只要有可能,小甲鱼(作者,下同)就会想方设法地列举一些有趣的例子,让读者在实践中理解概念。

本书从变量、数据类型、取值范围等基本知识开始讲解,再深入介绍两大重要的结构——分支与循环,讲到全书的重点——指针的时候,分散难点,依次讲解数组与指针、函数与指针、结构体与指针,每个知识点结合恰当的实例进行演示,环环相扣,内容详尽。

目前多数C语言教材基于的是Windows操作系统,采用的编译器(Visual C++6.0)其实早已被淘汰,所以本书的演示环境选择更适合C语言的Linux操作系统(CentOS),带读者学习“大神们”都在使用的GCC编译器,并确保所有代码均符合C99标准。

编程知识深似海,小甲鱼没办法仅通过一本书将所有的知识都灌输给读者,但能够做到的是培养读者对编程的兴趣,提高编写代码的水平,锻炼自学的能力。

最后,本书贯彻的核心理念是:实用、好玩、参与。

本书配套资源和网站支持

·PPT课件请在清华大学出版社网站本书页面下载。

·程序源代码和小甲鱼精心录制的61集(17.5小时)视频教程,请扫描书中对应二维码获取。

注意:书中给出了程序源代码的下载二维码和视频观看二维码,请先扫描封四刮刮卡中的二维码进行注册,之后再扫描相关二维码即可获得配套资源。

·同时,对于书中没有展开详述的内容提供了【扩展阅读】,读者可访问书中的相关网址或扫描对应位置的二维码进行阅读。

·本书还提供了额外的配套课后作业,如有需要,请在鱼C论坛(https://fishc.com.cn)或联系鱼C工作室的小客服(https://fishc.taobao.com)购买学习。

·如果在学习中遇到困难,可以到鱼C论坛或关注鱼C工作室微信公众号获取相关知识,与各位网友们相互交流和讨论。论坛中的提问互助具有知识累积的特点,因为初学者很多问题是一样的,所以不妨在提问之前先在论坛搜索一下相关的关键词,一般都可以找到答案。

鱼C工作室微信公众号

本书源代码下载

由于小甲鱼的水平有限,书中难免有一些错误和不准确的地方,恳请各位读者不吝指正,有兴趣的读者可发送邮件至workemail6@163.com,期待收到大家的意见和建议。

致谢

创作一本图书是非常艰苦的,除了技术知识等因素之外,还需要非常大的毅力。特别感谢清华大学出版社的魏江江主任和刘星编辑,在近一年的时间里,是你们一次次在我遇到困难的时候给予鼓励,让我可以坚持写下去,最后完成这一部作品。

感谢不二如是、康小泡和风介等鱼C论坛的诸位版主,因为你们夜以继日地守护着我们的论坛,积极地为用户解答问题,鱼C论坛才有今天如火如荼的学习氛围。

最后,需要特别感谢一下我的妻子,是你一直在身边照顾我、支持我,我才能把大量的时间投入到本书的写作之中。谨以此书献给你,我此生的挚爱!

小甲鱼

2019年2月

特别说明:此电子书暂不提供二维码资源,敬请谅解。