我自己当初开始学习的时候用的是C Primer Plus第五版的中译版,蓝皮厚书贼沉一本,高中的时候看的,看到指针那一章(好像是第九章还是第十几章,书不在身边)大概就满足大学一年级新生第一学期的学习要求了(不过这些内容是这本书的九牛一毛)
C Primer Plus这书现在(2019年7月12日)最新版本是第六版,白皮书,封面是国际象棋
后来写了许多程序遇到过许多坑,还有很多需要用的特殊特性,让我觉得自己这门语言学的还是不够深刻
然后在又写了许多程序之后,遇到了(或者说重新重视了)另一本书,The C Programming Language,也就是我们常说的K&R C,C的创世书,书里面的东西很简单但是很明了,讲的东西都很关键(而且薄薄一本没有那么大心理压力,2333333333
后来我还和人讨论过各个C的书,当时我就提出来说,“我对于老谭的书并没有过接触,想黑也黑不到点子上,我是不是跟风黑呢”,然后我们就这个问题讨论了一番,老谭的书除了一些其他的小黑点(我下面会说)以外,就一个“错误太多”黑点就足够黑了;另外还有C Primer Plus我们也讨论了一下,这本书我个人是捧的,但是他说这书写的太罗嗦,那关于这一点我也无法评论;至于K&R C,我们是一致好评
啰里啰唆说了这么多,其实要点如下:
1.老谭的书很糟糕,但是除了错误太多以外,其实其他黑点不重要,如果你是那种——明明是一名初学者,之前的确丝毫没有接触过C,但是却想在在时间有限的情况下在这门课程“考出高分”——的人,比如被许多答主称作“大学里的憨批”(原文引用没有感情色彩)的那种人,或者是明明本专业和编程序没啥关系却被学校逼着学C语言,学完以后也用不上的人,而且发的教材就是这本,那么,这本书很合适,因为它所在意的那些没有卵用的细节,不合国际规范的奇葩调用,各种无关紧要的可以绕开的问题,都是你们可能遇到的考试的考点,所以如果你不是想要学习如何使用一门语言,而是要应付考试甚至取得高分的话就继续看这本书吧,这本书作为某些学校的教材也不是没有原因的,它异常适合考试用,书里面的错误的确有很多,网上找一找都能找到勘误,当然不注意的话就会被坑,但是这些错误考试又不考,这门课学完书就扔了谁还在乎呢;
2.如果你确定自己不是那种只想考高分的人,那么也许你需要找找国外的C教材,我因为个人经历的原因比较推崇C Primer Plus,因为它的确把我从一个什么都不知道的小白教成了会一点东西的人,所以我可以说,如果你有和我类似的经历,那么用C Primer Plus自学应该是没问题的;
3.但是有人说,“C Primer Plus罗里吧嗦(就像我这篇答案一样),看起来容易打瞌睡(有吗?)”,我也不能排除有的人会讨厌太长这一点,所以也许The C Programming Language会比较合适,以我现在的眼光来看,这本书要点基本上都是有的,这本书很适合学习C语言,但是,是否很适合初学的人学习C语言,我不知道,因为我接触这书的时候不是初学者,我只能说,这书我现在很推荐你去看,而且我觉得初学者看应该没问题,看这本就行了;
[h1]综上,推荐 The C Programming Language,也就是K&R C[/h1]