最近上班了,利用上下班的班车时间,我在路上几乎看完了经典名著《C程序设计语言》。看完后的感觉就是:C语言不过如此!短短不到300页内容,就涵盖了C语言的方方面面,(有的内容我也是第一次才注意到)甚至穿插着讲了栈、二叉树、折半查找、快速排序、哈希表等数据结构与算法的内容。代码编写非常精炼,很适合有一定基础的人提高自己的代码水平。值得注意的是,这本书并没有在后面列参考文献或者值得推荐的读物之类的,这种情况在西方学术界是十分罕见的。据我所知,陶哲轩的《实分析》也没有列参考文献,全书内容的选择、每个定理的证明甚至课后题都是作者自己编的,汗颜啊!这本书原创性之高,可见一般。
首先先说第一章。一般的书,第一章只是讲是讲如何写“hello,world”程序。附带介绍一些printf,include之类是做什么的;而这本书的第一章,却给出C语言程序的概貌:利用一些简单的文字处理的例子,涉及了选择、循环控制,数组,甚至子函数等内容。所以一般人都不会把它当一本入门级教材,但是这样也有好处,就是尽早的写出一些稍微复杂一点的程序,而不是示例程序。
书中的练习题也很有意思,其中1.2说,如果在printf中加入了转义字符“\c”会有什么后果?我开始怎么也想不起来“\c”是什么意思,后来才知道是作者给读者开了一个小小的玩笑:\c根本就不是转义字符!而从后面的参考手册可以看出,如果“\”后面的字符不构成转义字符,那么行为是未定义的。
而且书中非常强调程序复用性的。里面的一些例子,比如读取一行字符并返回字符数的函数,在示例程序和习题中
首先先说第一章。一般的书,第一章只是讲是讲如何写“hello,world”程序。附带介绍一些printf,include之类是做什么的;而这本书的第一章,却给出C语言程序的概貌:利用一些简单的文字处理的例子,涉及了选择、循环控制,数组,甚至子函数等内容。所以一般人都不会把它当一本入门级教材,但是这样也有好处,就是尽早的写出一些稍微复杂一点的程序,而不是示例程序。
书中的练习题也很有意思,其中1.2说,如果在printf中加入了转义字符“\c”会有什么后果?我开始怎么也想不起来“\c”是什么意思,后来才知道是作者给读者开了一个小小的玩笑:\c根本就不是转义字符!而从后面的参考手册可以看出,如果“\”后面的字符不构成转义字符,那么行为是未定义的。
而且书中非常强调程序复用性的。里面的一些例子,比如读取一行字符并返回字符数的函数,在示例程序和习题中