关于《C/C++》的经典书籍

C/C++

C是一个结构化语言,它的重点在于算法和数据结构。

C++,首要考虑的是如何构造一个对象模型,让这个模型能够契合与之对应的问题域,这样就可以通过获取对象的状态信息得到输出或实现过程(事务)控制。所以C与C++的最大区别在于它们的用于解决问题的思想方法不一样。

每一个人学习编程都是需要从零开始,所以打好基础,选择一本好的语言和教材十分重要。上期我们已经介绍了大部分的主流编程语言,本节就介绍关于C和C++语音的一些教材,供大家学习参考。

  • 《C程序设计》——谭浩强(对于初学者来说是适用的)
  这本书也有些人会觉得过于重视语法细节。虽然缺点是有的,即没有把C语言的核心优势写出来,但是这是一本很经典的书,在当年很可贵。适合非计算机专业人士学习。

1

  • 《c陷阱与缺陷》——(不是初级读物)  

  它是由Andrew Koenig所著,高巍译。Andrew Koenig是AT&T大规模程序研发部(前贝尔实验室)成员,不仅有着多年的C++开发,研究和教学经验,而且还亲身参与了C++的演化和变革,对C++的变化和发展起到重要的影响。这本书不过于艰深,而且厚度刚刚好,让人在热情高涨阶段读完,不至于到了一半时间就气馁。

各章简介:

第一章 记法“陷阱”:考察在程序被记法分析器分解成各个符号的过程中可能出现的问题。  

第二章 语法“陷阱”:如果没有正确理解这些语法细节,将会出现怎么的错误? 

第三章 语义“陷阱”:有关语义误解的问题。  

第四章 连接:有关组成C程序的若干部分的连接问题。 

第五章 库函数:库函数的误用。  

第六章 预处理器:与预处理器有关的内容。 

第七章 可移植性缺陷:可移植性问题。  

第八章 建议:有关预防性程序设计的一些建议


2

  • 《c标准库》——(适用于进阶学习者)

  本书是由世界级C语言专家编写的C标准库经典著作。英文版已经重印十多次,并且这本书不只是手册,其中的很多内容对国内读者来说完全是崭新的,真正读过并读懂这本书的人寥寥无几。所以值得反复读。第一遍可以不用从头读到尾。只要读了就有收获。但是这本书据说很难买而且略贵。 《C++程序设计》——这本书有很多的版本,有不同的出版社和作者,所以在此并不特别推荐某个版本,很多大学都使用这本书作教材。虽然是本国产书,还是本教材,但讲的简单清楚,示例也很详实,关键是有一些最常用的UML知识的介绍,适合没有任何编程经验的人阅读。

  • 《C++ primer》——可以看中文版。

  很多外国人把这个作为第一本书入门,适合具有一定编程经验的程序员,小白可能会看不懂甚至看不下去。
ps:如果你是真的想要学好编程,建议别当成案头书,花功夫完整的看完一遍。
  • 《Think in C++》 ——(适合已经学过C++的人)推荐看英文原版,因为有很多人说中文版翻译太差。这本书全面介绍了知识点及背后的原理、机制。上一本《C++ Premier》告诉你 C++ 是怎样做的,而《Thinking in C++》则告诉你C++为什么这样做。
  • 《C和指针》——(不适合没有C语言基础的新手看)

  作者Kenneth•Reek是罗彻斯特理工大学计算机科学教授。他是一位经验丰富的C程序员,曾为多家公司担任过技术顾问。他讲授的课程有操作系统、数据通信、计算机网络、形式语言、算法分析和交换系统等。本书正是基于他9年的编程及教学的经验积累。本书顾名思义,专注于C的指针。介绍了太多可以提高效率的方法。《c和指针》这本书,可以为初学者奠定基础,如果你把这本书吃透,你就领先其他初学者太多。

3

  • 《C++ primer plus》——(适合初学者)这本书有很多专业人人士推荐,事无巨细地叙述了C的所有知识,因为它实际上杂糅了一些不属于C语言的知识,比如c primer plus介绍了ADT、队列和二叉树,而这些东西其实可以在一门叫数据结构的课上系统学习,所以会显得比较繁杂。此外还有一些编译器、操作系统相关的知识,都是与C语言关联不大的。因此我想表达的是,不要被疑问绊住脚步,浪费太多时间在细枝末节的地方,不要觉得C语言是很复杂,值得反复学习的东西,它只是你进入新世界的第一步而已,而编程的世界远比你想象的更广阔。 

45

  • 《C++设计新思维》——(高级教程)

  如果你认为“我的C++技术已经很好啦,没什么可学的啦。”或者“我的水平已经很高啦,超过了其他人!”这时候你可以试着读这本书。读后,我们可以知道,我们的C++到底是什么水平?我们与业界最高水准相比,差距到底多大?我们到底发挥了C++潜力的多少?我们该打起精神,奋起直追,还是继续恹恹下去?

  • 《C++并发编程实战》——(适合于需要深入了解C++多线程开发的读者,以及使用C++进行各类软件开发的开发人员、测试人员。同时,本书讲解了C++11对并发的支持,包括线程库,原子库,C++内存模型,锁和互斥量,另外还涵盖了多线程应用的设计和debug问题,可以作为C++11线程库的参考工具书。)

7

本期主要介绍了C/C++的教材,适用于大多数人。当然也有很多优秀的书籍没有列出,如果你有更好的建议或者你认为哪本书更好,欢迎在下方评论。




登录或注册后发布评论