《穿越C语言的迷雾》

图书定位:C语言的入门教材

图书特色:不求全,不求厚,只求重点突出,详图得当,内容正确,符合标准,好读有趣,尤其是重原理,重逻辑,解释透彻,讲他人所未讲。如果跟别的书一样,还有啥写头呢。

出版时间:预计2025年底

表面上看,C是一门简单的计算机语言,容易上手,简单培训一下就可以笨拙地写一些可以运行的代码。但是,这并不意味着C语言真的简单。在国内,学过C语言的人是如此之多,数都数不过来,但真正精通它的人寥寥无几。"精通"意味着你确实了解C语言语法细节的方方面面,并且能够熟练使用这门语言。如果你在简历上有"精通"字样,那就好象在你的背上画了一个靶子,所以你必须在这方面要高人一筹或者说有过人之处。

精通C语言是一个循序渐进的过程,对于初学者来说,首先是要有学习它的兴趣。即使你不热爱它,也不能反感它,反感就会抵触,而抵触会导致你记不住任何东西。接下来,你要学习并正确理解它的基本概念和语法元素,并因此可以编写出正确高效的代码。在这个过程中,练习是必要的,但不要迷信它。一个小学生,做再多的小学题,也不可能学会初中的知识。因此,只有了解了C语言的方方面面和它的精髓,才能写出高质量的程序。

"学习并正确理解C语言的基本概念和语法元素",这句话说起来简单,做起来难。尽管互联网如此发达,上网如此方便,而且和C语言有关的图书也如此之多,我曾经用"多如牛毛"、"汗牛充栋"来形容,但在我看来,它们中的多数都不能让学生达到这个目标。好的C语言教材所讲的内容不一定面面俱到,但它一定是循序渐进的、正确的、权威的、实用的,不会用错误的概念和内容误导学习者,而且能够帮助他们掌握这门语言的要点,让他们能够很快掌握并使用这门语言,这也正是为什么我要再写一本书,给牛增加负担的原因。具体地说,和同类图书相比,本书具有以下特点:

一,零基础,通俗易懂,循序渐进。

考虑到本书的很多读者都是大学新生,对计算机的工作原理、软件和硬件的关系、实际的软件开发流程等等都不太了解,一上来就告诉他们如何编程是不行的,会把他们搞蒙,继而失去兴趣。为此,本书是从计算机原理开始的,这和其它C语言图书是不一样的。

二,依据C语言的国际标准,保证内容的正确性。

C语言有自己的国际标准,该标准描述了规定了C语言的编译环境、运行环境和编程语法,而本书所讲授的内容都是与标准保持一致的。C语言是对计算机的抽象,它必须能够自洽,而且能够自圆其说,而很多教材在一些知识点和概念上的说法前后不一,自相矛盾,这是因为它们都参照了C语言第一次标准化之前的那几本书。

三,内容和角度标新立异、独竖一帜。

对于C语言,如果不了解它的类型系统,不知道表达式有值,你是不可能学好C语言的,但这恰恰是其它教程和图书都轻描淡写甚至忽略的地方。在这种情况下,把一些知识点讲得含糊不清,说得不明不白,也就不奇怪了。本书采用了独特的行文,力争将C语言的核心内容和技巧教给读者。

四,详略得当,突出重点,以点带面。

C语言的标准文档由语言部分和标准库组成,在它的最新标准里,语言部分就有190页。考虑到标准文档的行文言简意赅,晦涩难懂,你就知道它浓缩了多少知识点。对于一本教材来说,如果每个知识点都加以解释和阐述,再举几个例子,没有1000页到2000页是不可能的。这就是为什么市面上的有些C语言图书那么厚,但实际上他们未必讲了所有的知识点。对于初学者来说,只需要把重要的知识点学明白,把标准的本质和精髓学懂就行了,这就足以应付日常的编程工作。至于那些细节,只在需要的时候慢慢研究就好了,本书的另一个目标就是为你直接看标准文档打一个良好的基础。

五,厚度适中,方便教学。

正如刚才所说,C语言的细节和知识点很多。如果把所有细节和知识点都讲到,那本书的厚度将是惊人的,而且最终会变成一本枯燥的手册。市面上有很多C语言图书内容翔实,该讲的讲了,不该给初学者讲的也讲了,还美其名曰可以当手册查看。这导致的问题是初学者不知道哪些是重点,哪些只需要了解就行;另一个问题就是无法拿进课堂,这么厚,别说一个学期,几个学期都不够。本书正好相反,我们侧重于编程方法,侧重于重要的语法和知识点。