C++大学基础教程(第五版)
基本信息
内容简介回到顶部↑
c++是一门全球性的程序设计语言,主要用于开发工业级、高性能的计算机应用程序。deitel & associates出版公司出版了大量适于高校计算机科学教学的编程教科书和专业参考书,本书正是他们的成果之一。本书基于已大幅度修订了内容的《c++大学教程》(第五版),是为学制为一学期的基础计算机课程提供的一本简洁的教材。
本书集中介绍c++核心概念和特性,覆盖了《c++大学教程》(第五版)前13章的内容。具体内容有第1章:计算机、互联网和万维网简介。第2章:c++编程入门。第3章:类和对象介绍第4章:控制语句(第i部分)第5章:控制语句(第ii部分)。第6章:函数和递归入门。第7章:数组与c++标准库类模板vector。第8章:指针和基于指针的字符串。第9章:类的深入剖析(第i部分)。第10章:类的深入剖析(第ii部分)。第11章:运算符重载:字符串和数组对象。第12章:面向对象编程:继承。第13章:面向对象编程:多态性。本书含有大量实例、习题和选自许多不同领域的项目,目的是为学生提供了解决有趣的现实问题的机会。这本书着重考虑良好的软件工程原则,并强调程序的清晰性。通过实例来教学,避开了对晦涩难懂的术语和语法的详细阐述。
本书集中介绍c++核心概念和特性,覆盖了《c++大学教程》(第五版)前13章的内容。具体内容有第1章:计算机、互联网和万维网简介。第2章:c++编程入门。第3章:类和对象介绍第4章:控制语句(第i部分)第5章:控制语句(第ii部分)。第6章:函数和递归入门。第7章:数组与c++标准库类模板vector。第8章:指针和基于指针的字符串。第9章:类的深入剖析(第i部分)。第10章:类的深入剖析(第ii部分)。第11章:运算符重载:字符串和数组对象。第12章:面向对象编程:继承。第13章:面向对象编程:多态性。本书含有大量实例、习题和选自许多不同领域的项目,目的是为学生提供了解决有趣的现实问题的机会。这本书着重考虑良好的软件工程原则,并强调程序的清晰性。通过实例来教学,避开了对晦涩难懂的术语和语法的详细阐述。
作译者回到顶部↑
本书提供作译者介绍
Harvey M. Deitel博士是Deitel & Associates公司的主席和首席决策官员。在计算机领域43年的勤奋工作,使他具有极其丰富的业界和学术界经验。Detiel博士拥有麻省理工学院的学士和硕士学位,以及波士顿大学的哲学博士学位。他曾致力于IBM和MIT的一系列领先于时代的虚拟内存操作系统项目的研究工作,这些项目的技术成果如今已广泛应用于UNIX、Linux和Windows XP等系统中。他从事大学教学20余年,是波士顿学院计算机系的终身教授,而且在与其子Paul J. Deitel成立Deitel & Associates公司之.. << 查看详细
目录回到顶部↑
第1章 计算机、互联网和万维网简介 1
1.1 简介 2
1.2 什么是计算机 2
1.3 计算机组成 3
1.4 早期的操作系统 4
1.5 个人计算、分布式计算和客户/服务器计算 4
1.6 互联网和万维网 5
1.7 机器语言、汇编语言和高级语言 5
1.8 c和c++的历史 6
1.9 c++标准库 7
1.10 java的历史 7
1.11 fortran、cobol、pascal和ada 8
1.12 basic、visual basic、visual c++、c#和.net 8
1.13 主要的软件趋势:对象技术 9
1.14 典型的c++开发环境 10
1.15 关于c++和本书的几点说明 12
1.16 试运行一个c++应用程序 13
1.17 对象技术和uml的介绍 17
1.18 本章小结 22
1.19 web资源 23
1.1 简介 2
1.2 什么是计算机 2
1.3 计算机组成 3
1.4 早期的操作系统 4
1.5 个人计算、分布式计算和客户/服务器计算 4
1.6 互联网和万维网 5
1.7 机器语言、汇编语言和高级语言 5
1.8 c和c++的历史 6
1.9 c++标准库 7
1.10 java的历史 7
1.11 fortran、cobol、pascal和ada 8
1.12 basic、visual basic、visual c++、c#和.net 8
1.13 主要的软件趋势:对象技术 9
1.14 典型的c++开发环境 10
1.15 关于c++和本书的几点说明 12
1.16 试运行一个c++应用程序 13
1.17 对象技术和uml的介绍 17
1.18 本章小结 22
1.19 web资源 23
前言回到顶部↑
欢迎大家进入C++编程世界并学习本书。C++是什么?简单地说,C++是一门全球性的程序设计语言,主要用于开发工业级、高性能的计算机应用程序。为此,我们编写了大量适于高校计算机科学教学的编程教科书和专业参考书,不断地在Deitel & Associates出版公司出版。本书正是我们的成果之一,编写过程令人愉快。它基于我们已大幅度修订了内容的《C++大学教程》(第五版),是为学制为一学期的基础课程(CS1, Computer Science 1)提供的一本简洁的教材。本书集中介绍C++核心概念和特性,覆盖了《C++大学教程》(第五版)前13章的内容。
我们相信这本教材及其辅助材料包罗了教师和学生进行C++教学所需要的一切,使他们充分体验集信息性、趣味性、挑战性和娱乐性于一体的学习历程。在本前言中,我们首先概述本书的新特性。而在前言的“本书导读”部分,我们帮助教师、学生和专业人士了解本书中C++和面向对象编程知识的覆盖程度。另外,在前言中,我们还将说明本书中所用的各种约定,如“代码清洗”(code washing)和代码用粗体显示等。最后,我们提供网上免费编译器的信息,并详述一整套协助教师更好地开展教学的教学资源信息,包括教师资源光盘、PowerPoint课件幻灯片的授课备注、课程管理系统和SafariX(Pearson教育的网络书籍出版物)等。
本书的新特性
为了编写本书,我们仔细研究了《C++大学教程》的以往版本。这一新版本具有许多引人注目的特性:
●大幅度的内容修订。所有的章节都经过了有意义的校正和提升。我们不断改进,使得语言表达更为清晰与准确。同时,我们也调整了对C++术语的表达方式,使其与定义该语言的ANSI/ISO C++标准文档相一致。
●更小的章节。较大的章节分割成了更易于管理的若干较小的章节(例如,第四版的第1章被分割成第1章和第2章,第四版的第2章是现在这一版的第4章和第5章)。
●早期类和对象的涉及。在教学程序上,我们做了一些变动,就是在教学的早期就开始涉及类和对象的内容。在第1章,就向学生介绍对象技术的基本概念和术语。在以前的版本中,学生在第6章才开始开发自定义的、可重用的类及对象。但是,在新的版本中,在全新的第3章中就开始这项工作。第4章到第7章也是从“尽早接触类和对象”这一观点出发,我们做了认真的改写。这个新版本是面向对象的,无论是从书的开篇,还是贯穿整本书。把关于类和对象的讨论移到比较前面的章节,可以使学生直接“考虑对象”和更彻底地掌握这个概念。面向对象编程不是一件简单的事情,但是用面向对象的思想写程序是一种乐趣,相信我们的学生很快就能体会。
●综合的实例研究。我们增加了供学生学习的案例,它们贯穿多个章节。这些案例往往都是基于本书前面引入的类,然后在后面的章节中阐述新的编程概念。这些案例包括第3到7章中GradeBook(成绩簿)类的开发,第9章和第10章中Time类的开发,以及第12章和第13章中Employee类的开发。
●完整的GradeBook实例研究。我们增加了一个新的GradeBook实例研究来增强我们早期类和对象的表达。这一实例研究利用第3到7章中的类和对象,来逐渐构建GradeBook类。GradeBook类代表了教师的成绩簿,并且可以执行各种针对学生成绩的计算,如计算平均成绩、找最大值和最小值、打印图表等。
●符合CS1要求的基本主题。本书的内容集中讲授CS1课程体系所要求的核心C++概念。它为计算类的基础课程体系而设计,适于计算机科学和信息系统专业的学习。本书丰富的信息足以满足大多数高校这两个课程体系的要求。
●统一建模语言2.0(UML 2.0) —UML 2.0简介。统一建模语言(UML)已经成为面向对象系统设计优选的图形建模语言。本书中所有的UML图都是根据最新的UML 2.0规定来绘制的。我们采用UML类图来形象地表示类和它们之间的继承关系,采用活动图来展示各个C++控制语句中的控制流程。
●多源文件程序的编译和连接过程。第3章包含了编译和连接过程的图示和讨论,该过程生成了可执行应用程序。
●函数调用堆栈的解释。在第6章,我们通过提供函数调用堆栈和活动记录的详细讨论(含有图示),来解释C++是如何记录正在运行的函数,内存是如何保存函数的自动变量,以及函数在完成它执行的任务后是如何知道返回何处的。
●尽早介绍C++标准库中的string和vector对象。在示范的例子里使用string和vector类,使得例子更具有面向对象的性质。
●类string。在整本书中,对于大多数字符串的操作,我们使用string类,而非C式的基于指针的char* strings。但是,在第8章、第10章、第11章和第12章中都包含讨论char * strings的有关内容。我们提供了指针操作的练习,举例说明了如何用new和delete来动态分配内存,构建了自己的String类,使学生在将来的工作中有能力应对C和C++遗留代码中的char* strings。
●类模板vector。在整本书中,我们使用类模板vector,而不是C式的基于指针的数组操作。尽管如此,我们仍在第7章中继续讨论C式的基于指针的数组,为学生以后能够处理遗留的C和C++代码做准备,同时也为第11章中建立自定义的Array类奠定基础。
●经过调整的对于继承性和多重性的处理。第12章、第13章经过仔细调整,使得关于继承和多态性的处理更清楚,更容易被刚刚接触OOP的学生所接受。我们用Employee(雇员)层次结构代替了早先版本中Point/Circle/Cylinder(点、圆、圆柱)层次结构,来介绍继承和多态性。这个新的层次结构更为自然。
●对多态性工作“知其然也知其所以然”的讨论和图示。第13章包含了一个详细的图表和关于C++如何实现多态性、虚函数和动态内部绑定的解释。这样能够使学生对这些性能如何真正工作有一个深刻的理解。更重要的是,它有助于学生认识到多态性在额外的内存占用和处理器时间等方面的代价,从而使他们能明白什么时候使用多态性,什么时候避免使用它。
●遵循ANSI/ISO C++标准。我们根据最新的ANSI/ISO C++标准文档审核我们的文字表述,以求完整性和精确性。注意:如果读者需要更进一步的关于C++技术的细节,请阅读C++标准文档。该C++标准文档的一份PDF电子版本,序列号为INCITS/ISO/IEC 14882-2003,可以在webstore.ansi.org/ ansidocstore/ default.asp 以18美元购买。
我们相信这本教材及其辅助材料包罗了教师和学生进行C++教学所需要的一切,使他们充分体验集信息性、趣味性、挑战性和娱乐性于一体的学习历程。在本前言中,我们首先概述本书的新特性。而在前言的“本书导读”部分,我们帮助教师、学生和专业人士了解本书中C++和面向对象编程知识的覆盖程度。另外,在前言中,我们还将说明本书中所用的各种约定,如“代码清洗”(code washing)和代码用粗体显示等。最后,我们提供网上免费编译器的信息,并详述一整套协助教师更好地开展教学的教学资源信息,包括教师资源光盘、PowerPoint课件幻灯片的授课备注、课程管理系统和SafariX(Pearson教育的网络书籍出版物)等。
本书的新特性
为了编写本书,我们仔细研究了《C++大学教程》的以往版本。这一新版本具有许多引人注目的特性:
●大幅度的内容修订。所有的章节都经过了有意义的校正和提升。我们不断改进,使得语言表达更为清晰与准确。同时,我们也调整了对C++术语的表达方式,使其与定义该语言的ANSI/ISO C++标准文档相一致。
●更小的章节。较大的章节分割成了更易于管理的若干较小的章节(例如,第四版的第1章被分割成第1章和第2章,第四版的第2章是现在这一版的第4章和第5章)。
●早期类和对象的涉及。在教学程序上,我们做了一些变动,就是在教学的早期就开始涉及类和对象的内容。在第1章,就向学生介绍对象技术的基本概念和术语。在以前的版本中,学生在第6章才开始开发自定义的、可重用的类及对象。但是,在新的版本中,在全新的第3章中就开始这项工作。第4章到第7章也是从“尽早接触类和对象”这一观点出发,我们做了认真的改写。这个新版本是面向对象的,无论是从书的开篇,还是贯穿整本书。把关于类和对象的讨论移到比较前面的章节,可以使学生直接“考虑对象”和更彻底地掌握这个概念。面向对象编程不是一件简单的事情,但是用面向对象的思想写程序是一种乐趣,相信我们的学生很快就能体会。
●综合的实例研究。我们增加了供学生学习的案例,它们贯穿多个章节。这些案例往往都是基于本书前面引入的类,然后在后面的章节中阐述新的编程概念。这些案例包括第3到7章中GradeBook(成绩簿)类的开发,第9章和第10章中Time类的开发,以及第12章和第13章中Employee类的开发。
●完整的GradeBook实例研究。我们增加了一个新的GradeBook实例研究来增强我们早期类和对象的表达。这一实例研究利用第3到7章中的类和对象,来逐渐构建GradeBook类。GradeBook类代表了教师的成绩簿,并且可以执行各种针对学生成绩的计算,如计算平均成绩、找最大值和最小值、打印图表等。
●符合CS1要求的基本主题。本书的内容集中讲授CS1课程体系所要求的核心C++概念。它为计算类的基础课程体系而设计,适于计算机科学和信息系统专业的学习。本书丰富的信息足以满足大多数高校这两个课程体系的要求。
●统一建模语言2.0(UML 2.0) —UML 2.0简介。统一建模语言(UML)已经成为面向对象系统设计优选的图形建模语言。本书中所有的UML图都是根据最新的UML 2.0规定来绘制的。我们采用UML类图来形象地表示类和它们之间的继承关系,采用活动图来展示各个C++控制语句中的控制流程。
●多源文件程序的编译和连接过程。第3章包含了编译和连接过程的图示和讨论,该过程生成了可执行应用程序。
●函数调用堆栈的解释。在第6章,我们通过提供函数调用堆栈和活动记录的详细讨论(含有图示),来解释C++是如何记录正在运行的函数,内存是如何保存函数的自动变量,以及函数在完成它执行的任务后是如何知道返回何处的。
●尽早介绍C++标准库中的string和vector对象。在示范的例子里使用string和vector类,使得例子更具有面向对象的性质。
●类string。在整本书中,对于大多数字符串的操作,我们使用string类,而非C式的基于指针的char* strings。但是,在第8章、第10章、第11章和第12章中都包含讨论char * strings的有关内容。我们提供了指针操作的练习,举例说明了如何用new和delete来动态分配内存,构建了自己的String类,使学生在将来的工作中有能力应对C和C++遗留代码中的char* strings。
●类模板vector。在整本书中,我们使用类模板vector,而不是C式的基于指针的数组操作。尽管如此,我们仍在第7章中继续讨论C式的基于指针的数组,为学生以后能够处理遗留的C和C++代码做准备,同时也为第11章中建立自定义的Array类奠定基础。
●经过调整的对于继承性和多重性的处理。第12章、第13章经过仔细调整,使得关于继承和多态性的处理更清楚,更容易被刚刚接触OOP的学生所接受。我们用Employee(雇员)层次结构代替了早先版本中Point/Circle/Cylinder(点、圆、圆柱)层次结构,来介绍继承和多态性。这个新的层次结构更为自然。
●对多态性工作“知其然也知其所以然”的讨论和图示。第13章包含了一个详细的图表和关于C++如何实现多态性、虚函数和动态内部绑定的解释。这样能够使学生对这些性能如何真正工作有一个深刻的理解。更重要的是,它有助于学生认识到多态性在额外的内存占用和处理器时间等方面的代价,从而使他们能明白什么时候使用多态性,什么时候避免使用它。
●遵循ANSI/ISO C++标准。我们根据最新的ANSI/ISO C++标准文档审核我们的文字表述,以求完整性和精确性。注意:如果读者需要更进一步的关于C++技术的细节,请阅读C++标准文档。该C++标准文档的一份PDF电子版本,序列号为INCITS/ISO/IEC 14882-2003,可以在webstore.ansi.org/ ansidocstore/ default.asp 以18美元购买。
相关资源回到顶部↑
· 【推荐】众多高校学子口口相传,他们共同的选择--华清远见嵌入式学院(嵌入式Linux就业课程、3G手机开发就业课程,通过入学测试即签100%就业协议,4个月集中实训,世界500强企业成功就业保障!!!)· 【亚嵌教育 嵌入式培训专家】(嵌入式培训,嵌入式Linux培训,ARM培训,Linux培训,3G培训,Android培训,WINCE培训,DSP培训,FPGA培训,嵌入式就业培训)
· 程序员的7种武器(正则表达式、编程语言、数据库、算法、软件调试、开发环境)
· C/C++ 经典著作(《C专家编程》《C++ Templates中文版》《C和指针 》《C陷阱与缺陷》《C++沉思录》)
评论交流
共有11人开贴评论 11人参与评论 11人参与打分 查看
评价等级:







发表于:2008-7-10 20:15:00
看到网上有不少想要学些C 的朋友在问看什么书比较好,群里面的网友也经常问我,到底看什么书才能入门。我一直说,能让你们入门C 的书有很多,但是要根据自己的情况而定。大家的基础不同,受过的教育不同,天赋不同,任何一本书都有它的定位,不可能人人都合适。所以我决定以一个过来人的身份,花一点时间把大多数热门的C 入门书介绍一下,希望能对各位C 初学爱好者有一些帮助。如果有说得不对的地方,也请各位指教。
钱能著,C 程序设计教程:http://www.china-pub.com/980
这本书比较古老了,99年写的,很多大学里用这本书做教程。应该说,钱能老师在C 教育教学方面也走在很前面,这么多年来想必是积累了不少的经验。这本书基本上把C 的语法基础和概念基础都涵盖了,而且条理也比较清楚。但是与大多数教科书一样,这本书的内容还是显得比较枯燥的,很多概念并没有着重地去研究分析。所以,这是一本好教科书,但是并不适合各位自学的朋友,特别是一点基础都没有的朋友。如果你以前学过C或者VB,那么这本书还是可以考虑一下的。
钱能著,C 程序设计教程(第二版):http://www.china-pub.com/26719
这本书是2005年出的,当初我还特意去买了一本看看。相对于第一版来说,改进还是蛮大的,比如程序代码更符合标准,介绍的内容更为全面。同时,也看到了不少有趣的语言和比喻,我个人认为这个版本的书越来越像外国人写的书了。但是这本书也有个很严重的问题,内容之间互相穿插。其实C 很多知识本来就是相互穿插的,但是读者学习的时候只能按照一个路径学习,否则就会很晕。所以,我认为这本书比较适合已经基本掌握C 的朋友当参考书看,要靠这个自学基本上很难。
谭浩强著,C 程序设计:http://www.china-pub.com/20193
大家对这本书的褒贬不一,分歧比较严重。我虽然没有通读整本书,但就阅读的几个章节发现了问题。首先是文辞的问题,我觉得这本书实在太枯燥了!要知道对于自学C 的人来说,没有兴趣就是没有希望啊。正如网上众多网友评论的,这本书也只能做做教科书了。其次是篇幅的安排。我觉得这本书对于面向过程和一些流程控制语句的介绍单薄了一点。C 的面向对象固然重要,但是流程控制毕竟是所有语言最重要也最难掌握的东西。在我这里有很多朋友,都说自己能看懂程序但是不会写程序,原因就在于此。
潘嘉杰著,易学C :http://www.china-pub.com/39862
最近这本书很火,据说是上海的一个大学生写的C 教程。我在CSDN上找到了电子版的片段,第一感觉就是,这的确是一本给零基础初学者的好书。很多对初学者有用的细节在那本书里面都有介绍。(很多网友看了钱老师或谭老师的书问我,怎么创建一个C 的程序,怎么调试之类的。)从语言上来说,也是比较生动活泼的,让很多没有概念的朋友一看就能理解。我推荐了几位群里的朋友去看,他们都反映很好。不过这本书也有缺点,就是讲C 讲得不够深入。虽然C 的主要和重要内容都有,但要靠这本书学到很完整的C 是不太可能的,所以如果你有别的语言基础,就可以不用看这本书了。如果你没有任何语言的基础,那么这本书是较为合适的。我看到作者说打算写第二版,如果作者有幸看到我的这篇文章,也考虑采纳下我的建议,我很看好这本书。
钱能著,C 程序设计教程:http://www.china-pub.com/980
这本书比较古老了,99年写的,很多大学里用这本书做教程。应该说,钱能老师在C 教育教学方面也走在很前面,这么多年来想必是积累了不少的经验。这本书基本上把C 的语法基础和概念基础都涵盖了,而且条理也比较清楚。但是与大多数教科书一样,这本书的内容还是显得比较枯燥的,很多概念并没有着重地去研究分析。所以,这是一本好教科书,但是并不适合各位自学的朋友,特别是一点基础都没有的朋友。如果你以前学过C或者VB,那么这本书还是可以考虑一下的。
钱能著,C 程序设计教程(第二版):http://www.china-pub.com/26719
这本书是2005年出的,当初我还特意去买了一本看看。相对于第一版来说,改进还是蛮大的,比如程序代码更符合标准,介绍的内容更为全面。同时,也看到了不少有趣的语言和比喻,我个人认为这个版本的书越来越像外国人写的书了。但是这本书也有个很严重的问题,内容之间互相穿插。其实C 很多知识本来就是相互穿插的,但是读者学习的时候只能按照一个路径学习,否则就会很晕。所以,我认为这本书比较适合已经基本掌握C 的朋友当参考书看,要靠这个自学基本上很难。
谭浩强著,C 程序设计:http://www.china-pub.com/20193
大家对这本书的褒贬不一,分歧比较严重。我虽然没有通读整本书,但就阅读的几个章节发现了问题。首先是文辞的问题,我觉得这本书实在太枯燥了!要知道对于自学C 的人来说,没有兴趣就是没有希望啊。正如网上众多网友评论的,这本书也只能做做教科书了。其次是篇幅的安排。我觉得这本书对于面向过程和一些流程控制语句的介绍单薄了一点。C 的面向对象固然重要,但是流程控制毕竟是所有语言最重要也最难掌握的东西。在我这里有很多朋友,都说自己能看懂程序但是不会写程序,原因就在于此。
潘嘉杰著,易学C :http://www.china-pub.com/39862
最近这本书很火,据说是上海的一个大学生写的C 教程。我在CSDN上找到了电子版的片段,第一感觉就是,这的确是一本给零基础初学者的好书。很多对初学者有用的细节在那本书里面都有介绍。(很多网友看了钱老师或谭老师的书问我,怎么创建一个C 的程序,怎么调试之类的。)从语言上来说,也是比较生动活泼的,让很多没有概念的朋友一看就能理解。我推荐了几位群里的朋友去看,他们都反映很好。不过这本书也有缺点,就是讲C 讲得不够深入。虽然C 的主要和重要内容都有,但要靠这本书学到很完整的C 是不太可能的,所以如果你有别的语言基础,就可以不用看这本书了。如果你没有任何语言的基础,那么这本书是较为合适的。我看到作者说打算写第二版,如果作者有幸看到我的这篇文章,也考虑采纳下我的建议,我很看好这本书。
评价等级:







发表于:2008-7-10 20:15:00
潘爱民译,C Primer第三版(中文):http://www.china-pub.com/5926
是不是因为这本书名字里面有个Primer(入门),所以就有很多朋友就把这本书归类为入门书了呢?很遗憾,第三版这本书我完整地看过,但并不觉得这本书适合给入门级的朋友。当然,如果你有别的语言的基础,并且有耐心看完这本书,这本书是不错的选择。从译者的水平来看,第三版的翻译是最自然的。这本书的内容比较全,而且也有很多讨论到C 细节的地方。因此,如果你学过C或者看完了易学C ,那么来看这本书是不错的选择。
李师贤译,C Primer第四版(中文):http://www.china-pub.com/28767
与第三版一样,这本书注重细节,但也与第三版一样并不适合初学者。C 很多知识都是互相穿插,并且对读者的接受能力都是极大的考验。在尚未教会他们写一个程序之前,就把指针、命名空间之类的东西交给他们只会成为他们的负担。所以给出的建议也与第三版类似,请看完入门书再来读这本书。
张引译,C 大学基础教程第五版(中文):http://www.china-pub.com/30687
这本书是买完以后才知道原来是个缩水版,里面没有模板等内容。从内容、翻译和细节上来说,这本书的确是一本非常不错的C 书籍,也是一本优秀的国外教科书。特别是一些针对细节的tips,对大家的实际编程都是比较有用的。只不过我对这本书的内容编排顺序不敢苟同,似乎他把面向对象和UML都作为重点放在了书的较前部。正如我先前所说,会读不会编大多是因为没有掌握好面向过程,所以当务之急应该是先教大家能熟练运用各种语句,然后再来讲这些抽象的概念。毕竟光靠这些抽象的概念是什么程序都编不出来的。
裘宗燕译,C 程序设计语言(特别版):http://www.china-pub.com/6591
最后来讲这本经典书。大家都知道这本书的作者是谁吧?C 之父Bjarne Stroustrup。我也不知道怎么会有人推荐初学者去看这本书的。打一个形象的比喻,让C 初学者看这本书就相当于让一个打算学英语的人直接去背字典。China-pub上也有众多的朋友在那里建议初学者不要轻易尝试看这本书。如果说C Primer的特点是细节和全面的话,那么这本书的特点便是细节加全面加权威。别忘了作者可是C 之父,没有人比他更了解C 很多地方的动机和原理。裘老师的翻译没有什么大问题,不过就那个“在线函数”和“内联函数”让大家觉得有些别扭。
最后的建议:
学习C ,对于零基础的朋友来说兴趣是非常重要的。如果你选一本超过500页的书来入门,我估计你看到200页左右就看不下去了。这并不是书的质量造成的,而是它给你带来的巨大心理压力。考虑周全的书往往在内容穿插上要花很多的功夫,所以一不小心就让初学者摸不着头脑。在此,我建议没有基础的初学者先去看《易学C 》,对最基础的东西有一些概念之后,再来看钱能老师的《C 程序设计教程》第二版和《C Primer》第三(四)版。如果这些都看完了,那么最后再来看C 之父写的《C 程序设计语言》就会比较舒适了。
如果你有过学习C或者VB的经历,那么建议直接去看钱能老师或者谭浩强老师的书。迅速掌握C 的一些特点之后,再去看《C Primer》之类的,这样能充分利用你以前学过的相关知识,加快C 的学习速度。
还有如果想在面向对象方面做一些深入研究的,建议去看看UML和设计模式方面的书,这些都有助于让你了解怎么才能运用好面向对象的功能。
最后,感谢大家花那么多时间看完了我的文章,如果有什么不同观点,欢迎提出!
是不是因为这本书名字里面有个Primer(入门),所以就有很多朋友就把这本书归类为入门书了呢?很遗憾,第三版这本书我完整地看过,但并不觉得这本书适合给入门级的朋友。当然,如果你有别的语言的基础,并且有耐心看完这本书,这本书是不错的选择。从译者的水平来看,第三版的翻译是最自然的。这本书的内容比较全,而且也有很多讨论到C 细节的地方。因此,如果你学过C或者看完了易学C ,那么来看这本书是不错的选择。
李师贤译,C Primer第四版(中文):http://www.china-pub.com/28767
与第三版一样,这本书注重细节,但也与第三版一样并不适合初学者。C 很多知识都是互相穿插,并且对读者的接受能力都是极大的考验。在尚未教会他们写一个程序之前,就把指针、命名空间之类的东西交给他们只会成为他们的负担。所以给出的建议也与第三版类似,请看完入门书再来读这本书。
张引译,C 大学基础教程第五版(中文):http://www.china-pub.com/30687
这本书是买完以后才知道原来是个缩水版,里面没有模板等内容。从内容、翻译和细节上来说,这本书的确是一本非常不错的C 书籍,也是一本优秀的国外教科书。特别是一些针对细节的tips,对大家的实际编程都是比较有用的。只不过我对这本书的内容编排顺序不敢苟同,似乎他把面向对象和UML都作为重点放在了书的较前部。正如我先前所说,会读不会编大多是因为没有掌握好面向过程,所以当务之急应该是先教大家能熟练运用各种语句,然后再来讲这些抽象的概念。毕竟光靠这些抽象的概念是什么程序都编不出来的。
裘宗燕译,C 程序设计语言(特别版):http://www.china-pub.com/6591
最后来讲这本经典书。大家都知道这本书的作者是谁吧?C 之父Bjarne Stroustrup。我也不知道怎么会有人推荐初学者去看这本书的。打一个形象的比喻,让C 初学者看这本书就相当于让一个打算学英语的人直接去背字典。China-pub上也有众多的朋友在那里建议初学者不要轻易尝试看这本书。如果说C Primer的特点是细节和全面的话,那么这本书的特点便是细节加全面加权威。别忘了作者可是C 之父,没有人比他更了解C 很多地方的动机和原理。裘老师的翻译没有什么大问题,不过就那个“在线函数”和“内联函数”让大家觉得有些别扭。
最后的建议:
学习C ,对于零基础的朋友来说兴趣是非常重要的。如果你选一本超过500页的书来入门,我估计你看到200页左右就看不下去了。这并不是书的质量造成的,而是它给你带来的巨大心理压力。考虑周全的书往往在内容穿插上要花很多的功夫,所以一不小心就让初学者摸不着头脑。在此,我建议没有基础的初学者先去看《易学C 》,对最基础的东西有一些概念之后,再来看钱能老师的《C 程序设计教程》第二版和《C Primer》第三(四)版。如果这些都看完了,那么最后再来看C 之父写的《C 程序设计语言》就会比较舒适了。
如果你有过学习C或者VB的经历,那么建议直接去看钱能老师或者谭浩强老师的书。迅速掌握C 的一些特点之后,再去看《C Primer》之类的,这样能充分利用你以前学过的相关知识,加快C 的学习速度。
还有如果想在面向对象方面做一些深入研究的,建议去看看UML和设计模式方面的书,这些都有助于让你了解怎么才能运用好面向对象的功能。
最后,感谢大家花那么多时间看完了我的文章,如果有什么不同观点,欢迎提出!
| 我要写评论 |
| 查看所有评论交流(共11条) |








点击看大图




加载中...

