C语言编程点滴
C 语言的书林林总总,数不胜数,其中不乏《C Programming Language》[1]这样的Bible 级经典白皮书,也不乏《C 陷阱与缺陷》[2]、《C Programming FAQs》[3]这样的工程师枕边必备。中文教材方面也有《C 语言程序设计》[4],[5]这样广受学生们欢迎的教科书。所以任何再写C 语言书籍的作者,都要首先回答这样一个问题,为什么还需要这样一本书?
首先说明,这本书不是教材。任何教材都是“扁平”结构的,争取覆盖面广一些,同时每一部分又不是太深入,以免学生们被细节吓跑,同时也避免了一叶障目而不见森林。而本书最大的特点是在C 语言常用的若干知识点上做了深入探究。从这个意义上来说,它应该是一种“纵深”结构的。聪明的读者已经意识到,与这本书类似的那就是《C 陷阱与缺陷》[2],这么理解也对,也不对。对的就是本书确实选取了C 语言的一些必备知识,相对来说,也是初学者容易搞不清楚、犯错误的知识点,做了深入地分析和介绍。不对的是这些知识点主要立足于教材中的内容,主要是对教材中没有进行详细解释的地方进行了补充式说明。你会发现,就连本书的顺序都与一般的教材相同。这些知识点也是我在教学过程中,我的学生们经常产生疑问或困惑的地方。坦白地说,这些知识点我也曾经困惑过,所以我猜在你学习的过程中也会有困惑。
同时,本书选取的主题,都是学习C 语言必备的知识点。对每一个知识点,又不太像《C 陷阱与缺陷》那样,一一列举出现错误的例子,给出阐释和警告;更多是从正面解析清楚知识点的原理,然后通过程序来解释剖析,真正做到讲解精炼,基本上一两个实例即可说明关键知识点。另外,对于数组、指针这样的关键章节,本书又不惜篇幅,讲解清楚。一些关键知识点讲解,引用到国外的经典著作,给读者很好的扩展阅读空间。通读并理解本书后,读者会更加深入地理解C 语言的机制和特点,也必将能够正确高效地使用C 语言进行编程。
本书另外一个特点就是语言轻松幽默,阅读和学习门槛相对较低,读者阅读和学习的时候不会觉得枯燥。本书的编辑读过之后,说这是本书的一个特色,其实主要是因为从小到大,大家总是笑话我,后来我想通了,决定写这本书,在你们笑的同时,多少我还能赚点钱:)。不瞒你说,我最大的理想就是:以后某个同学问学习C 语言用什么书时,大部分人都会对他说,“选某某教材,另外再加上赵岩的《C 语言点滴》。”
给书起个好名字,是一个比较难的事情,既要反映书的内容,还要给读者留下深刻的印象。原来准备将它叫作《C 语言神韵》,但是C 语言中没有任何东西是它独有的。很多其他的语言都或多或少地借鉴了它的语法和思想,例如C++、Java和Perl等。再说,如果C 语言是个女孩子,我也就是刚刚和人家认识,趁人不注意摸一下小手而已,这个时候妄谈什么神韵还太早了。如果以后能长久地相处下去,像Ritchie那样终身携手,那个时候,神韵才会慢慢显露出来。
灵感就在电光火闪之间,就叫做《C 语言点滴》吧。第一,本书并不是一个系统的教材,而是对某些知识点进行了分析,符合“点滴”这个语境。第二,C 语言是一个大海,本书的内容只是其中的几个小水滴,但是俗话说“滴水藏海”,如果读者能通过这些小水滴有所思考,并有所收获,将是作者最高兴的一件事。