background image

  所有初学者面临的第一个问题便是:如何选择教材。好的开始是成功的一半,选择一

本优秀的教材是事半功倍的关键因素。不幸的是,学校通常会帮你指定一本很差劲的 C 语

言课本;而幸运的是,你还可以再次选择。

  大名鼎鼎的谭浩强教授出了一本《C 语言程序设计》,据说发行量有超过 400 万,据

我所知,很多学校都会推荐这本书作为 C 语言课本。虽然本人的名字(谭浩宇)跟教授仅

仅一字之差,但我是无比坚定地黑他这本书的。这本书不是写给计算机专业的学生的,而

是给那些需要考计算机等级考试的其它专业学生看的。这本书的主要缺点是:例子程序非

常不专业,不能教给你程序设计应该掌握的思考方式;程序风格相当地不好,会让你养

成乱写代码的恶习;错误太多,曾经有人指出过这本书的上百个错误,其中不乏关键的

概念性错误。好了,这本书我也不想说太多了,有兴趣大家可以百度一下:)

  Kernighan 和 Ritchie 的《The C Programming Language》(中译名《C 程序设计语言》)堪

称经典中的经典,不过旧版的很多内容都已过时,和现在的标准 C 语言相去甚远,大家

一定要看最新的版本,否则不如不看。另外,即使是最经典最权威的书,也没有办法面面

俱到,所以手边常备一本《C 语言参考手册》是十分必要的。《C 语言参考手册》就是《C 

Reference Manual》,是 C 语言标准的详细描述,包括绝大多数 C 标准库函数的细节,算

得上是最好的标准 C 语言的工具书。顺便提一句,最新的《C 程序设计语言》是根据 C89 标

准修订的,而《C 语言参考手册》描述的是 C99 标准,二者可能会有些出入,建议按照

C99 标准学习。还有一本《C 和指针》,写得也是相当地不错,英文名是《Pointers on C》,特

别地强调指针的重要性,算是本书的一个特点吧。不过这本书并不十分适合初学者,如果

你曾经学过 C 语言,有那么一些 C 语言的基础但又不是很扎实,那么你可以尝试一下这

本书。我相信,只要你理解了指针,C 语言便不再神秘。

  如果你已经啃完了一本 C 语言教材,想要更进一步,那么有两本书你一定要看。首先

是《C Traps and Pitfalls》(中译名《C 陷井与缺陷》),很薄的一本小册子,内容非常非常地

有趣。要注意一点,这本书是二十多年前写成的,里面提到的很多 C 语言的缺陷都已被改

进,不过能够了解一些历史也不是什么坏事。然后你可以挑战一下《Expert C Programming》

(中译名《C 专家编程》),书如其名,这本书颇具难度,一旦你仔细读完并能透彻理解,