浙工大C语言入门指南 (仅供参考)

C语言书籍推荐

浙工大图书馆中,计算机的书都集中在三楼TP区。我个人推荐下面这么几本书。

《Head First C》。Head First系列的书质量基本都很高。该书有很多插图,总体上就是用一种轻松愉快的方式给新手讲解令人头疼的C语言。书虽然有些厚但其实并没多多少字,内容上也相当丰富,英文原版的阅读难度大概也就高中阅读理解的难度。图书馆有其中译本《嗨翻C语言》,但我强烈推荐去看其英文影印版《深入浅出C语言》,一来这书的英文版本身难度就不大,二来容易树立阅读英文资料的信心(特别是看到自己看完这么厚一本英文书的时候)。

     

现在很多国内出版社(比如东南大学出版社,电子工业出版社),都推出了不少国外著名教材的影印版,内容、排版均与进口原版相同,价格却大大降低。大多数国外教材的中译本的翻译质量都相当糟糕,如今,这种影印版书籍很好的解决了这个问题。

 

《C Programming: A Modern Approach》 。 图书馆似乎没有这本书的影印版,但是有它的中译本《C语言程序设计现代方法》。喜欢看英文版的话可以自行下载pdf。这本书比Head First C严肃一些,看上去更像是一本教材,整体上比较系统、全面和严谨,也是入门好书。

 

《C Traps and Pitfalls》。英文版和中文版图书馆都有。书名的中文翻译是《C陷阱与缺陷》,影印版可能也用这个书名。该书非常经典,以至于1989年出版以后,到现在还在各大C语言必读书目里面。由于这本书出的时间非常早,因此里面有些地方可能与现代的C语言标准有些差异,比如说,在当时main()可以不显式指定返回值类型,默认就是int,但现在的C标准规定必须显式的声明返回值类型为int,即int main() {...}。因此建议在看完上面两本之后再看这本书为好。这本书很薄,也就一百来页,但内容上相当出色,其中的指针、数组的部分尤为精辟,而且把一些C语言基本的原理性的东西也讲得很清楚,如此一来可以避免很多不必要的死记硬背。一定会大有所获。

 

为什么不推荐谭浩强的书?有很多原因。最大的一个原因就是谭书的错误实在太多(据说随便找找就有上百个,但我没证实过)。谭先生似乎根本不在乎C语言有C语言标准这回事,印刷错误什么的也就算了,很多根本就是概念性的错误,实在误人子弟。当然我们也得从历史看待问题,在谭书刚发行的那个时候,计算机尚未普及,更别说相关的资料了,谭浩强出了这么一本简单易懂的C语言书的确是非常有意义的。但是现在,既然已经有好得多的教材可以替换它了,又何必拘泥于谭书?谭书还是留给非专业的学生应试去吧,我们专业的可是真的要天天与代码打交道的。

 

编译环境

不要用VC++6啦,2018年都快到了,你还用1998年发布的东西,不觉得哪有问题么?就算要用也用新一点的Visual Studio 2015 Community或2013 Community,嫌VS太大用用Code::blocks也好。

当然我个人还是比较建议在学习的初期,尝试尝试在Linux或Mac环境下用命令行去编译程序。这种编译器一般用的比较多的就是gcc和clang。最好连Makefile的写法都去了解了解,这样你就可以知道,当你点了Visual Studio中的编译按钮后,究竟发生了什么。这样也容易理解C语言多文件编译的原理。这个仅仅是个建议,如果嫌麻烦,那继续用Visual Studio等集成开发环境也不会有什么大问题。

 

要说还有什么一定要学的东西,那就是调试器。代码一时爽,调试火葬场。还真有人,本科毕业了还不知道世界上有调试器这种东西,还以为调试代码都是睁着眼睛瞎摸,东改一点,重新编译,哎呀没成功,再西改一点,哦又没成功,还混进去几个新的问题进去,越来越不对了。这怎么可能呢?用调试器的话,就可以节省大量瞎摸的时间,它可以按照你的指示设置断点,让程序运行到某处的时候停止,然后你就可以用它观察当前所有变量的值,你甚至能用它一条一条的单步执行代码,一步步慢慢走,看看程序到底会在哪儿跌跤。所以别把自己的生命浪费在瞎摸上,有那时间还不如去操场跑几圈。

 

我必须得提一下代码风格,这个经常被人忽视。代码风格是干嘛的?用来增强程序的易读性的。你得知道,你自己写出的代码可不只是给电脑读的,你自己要读吧,别人可能要看你代码吧,要是你写的代码易读性很差,不缩进甚至乱缩进,不仅显得邋遢,还不容易找到错误(我见过一些人,找了半天错误没找出来,把代码的缩进规范一下,马上就找到了原因,啊原来是少了个括号)。

代码风格的问题我暂时推荐去看下面两本资料

《高质量程序设计指南 C/C++语言》

这本指南有一部分就专门讲代码风格,该书的前版pdf在网上流传甚广(《高质量C/C++编程指南》),这是该书的第3版,难得的国产精品。

 

《The C Programming Language》

中文译作《C程序设计语言》,建议看第2版。这是C语言之父写的C语言教材,虽然不适合零基础的初学者,但里面的代码风格相当清晰(一般称为K&R风格)。这个办公室里有一本英文版,可以借去看看。

 

网络资源

首先第一点,多用Google,别用百度。百度并没有什么卵用,它根本不懂中文。搜出来前两条都是带毒的,一不小心就把百度卫士啊360什么的全家都装在电脑上了。百度唯一的用处就是配合ping命令来测试网络通没通。相反的,Google这几年下来,搜索质量越来越高,真是省心省力。实在学不会科学上网的同学,那起码也用微软必应搜索凑合凑合。

 

接下来,假如你想问一个C语言相关的问题怎么办?上百度知道?去百度贴吧?看百度百科?

别傻了……

要去就去 stackoverflow.com ,这个堪称程序员的facebook,里面几乎所有的问题回答,都是极其一流的高手写的,准确而精辟,并且这个网站人流量非常大,基本你能想到的问题,上面都已经有人问过了。虽然里面全是英文。感兴趣的话还可以去stackoverflow的上层站点stackexchange看看,里面还有很多跟stackoverflow类似的什么物理化学数学工程电气运维等等子站点,人气都相当足。

这是stackoverflow的页面:

 

 

 

无论是提问还是回答都相当有水平:

 

 

stackexchange的社区相当庞大:

posted @ 2015-09-23 14:33  luc9  阅读(753)  评论(5编辑  收藏  举报