学习C总结

前个星期,终于看完了俗称为K&R的《The C Programming Language》的第二版了,因此现在作一总结。

不得不说,当初看这本经典之作的初衷还真是有点奇怪。这个学期刚开始的时候,不知出于何种目的,想找一本经典原版书看看,可能是因为暑假的时候完整地看完了英文版的CCNA网院教程,觉得看英文版的IT书实在对自己很有益处。找了很久,看了很多人的评论,最后圈定了两本,一本是K&R2,另一本《Computer Networks》第四版。前者是C语言经典书中的第一位,C语言又始终是经典中的经典,所以就决定先看了。

K&R2里面有很多精彩的例子,而且大部分都很精短,我把它们分了几类。第一类是关于输入输出的,单凭getchar和putchar两个函数已经可以做出很多实用的程序,如UNIX的wc(word count)、cat、grep等等。第二类是涉及算法的,如二分搜索和快速排序算法。第三类是涉及数据结构的,如hash表的实现和树的实现和遍历。第四类是涉及系统调用的,如UNIX的cp、ls等。所以看完这本书,我觉得它包含了计算机系很多骨干课程的部分内容进去,而且因为这是介绍C语言的书,所以涉及到算法、数据结构和操作系统的时候,一般不会有太多解释。所以我觉得现在把所有课程学完之后看这本书,恰到好处,而且把很多已经忘得差不多的东西补回来。

学完这本书,主要收获如下:第一、记熟了很多算法;第二、明白了UNIX和Linux的输入输出运作;第三、记熟了很多C的库函数和相应的头文件;第四、终于理解了头文件是干什么用的;第五、见识了高手的编程风格…

接下来,有了C,打算不时做一下sicily(中大的ACM系统)。有机会也会把以前一些人工智能的算法和数据结构的实现用C去做试试。我一直的想法是,想找一个计算机应用的最小集合,目前我的答案是一个内核、一个编译器,一个汇编链接器和一个文本编辑器,有了这些其他都能变出来,以后再慢慢验证这个答案。

Advertisements

发表评论

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 更改 )

Twitter picture

You are commenting using your Twitter account. Log Out / 更改 )

Facebook photo

You are commenting using your Facebook account. Log Out / 更改 )

Google+ photo

You are commenting using your Google+ account. Log Out / 更改 )

Connecting to %s