程序员

注册

 

发新话题 回复该主题

C入门经典好书CPrimer [复制链接]

1#

查看文章尾部参与赠书活动

在编程的世界里,很多语言来了又走,而C++却屹立了30年,并在21世纪仍保持强劲势头。

去年,C++之父BjarneStroustrup公布了C++20添加的新特性,让众多程序员炸了锅。其中一个新特性——模块(Modules),至少让代码编译速度提升5倍以上。

BjarneStroustrup的理念是,一种语言不应该只能实现设计者想得到的功能,它必须有能力做得更好。这种追求“更好”的理念,也让C++在30年里经久不衰。

伴随C++长盛不衰的,还有一本畅销了20余年、引领百万程序员进入C++世界的经典图书——《C++PrimerPlus》。这本书出版至今已更新六代,是很多技术大牛案头常备的工具书。

现在,这本被C++程序员奉为圣经的《C++PrimerPlus》终于出配套习题解答了。

1

充满生机的C++

目前,全球有约万名左右的C++程序员,同时C++社区以每年10万到15万新增开发者的速度增长。

与C语言一样,C++也是在贝尔实验室诞生的。BjarneStroustrup刚开始并没有打算开发某种编程语言,而是想构建一套分布式系统。

C++主要是为了我的朋友和我不必再使用汇编语言、C语言或其他现代高级语言来编程而设计的。它的主要功能是可以更方便地编写出好程序,让每个程序员更加快乐。

——BjarneStroustrup

它的前身C语言,属于过程式的并且基于函数,虽然包含能够封装数据的记录类型(struct),但是它不包含类似对象的行为来表现被封装的状态。显然,用户迫切希望有一种语言既拥有C语言的强大功能,又拥有面向对象的类的灵活性和可扩展性,于是C++应运而生。

对于C++,Stroustrup比较关心的是让它更有用,而不是实施特定的编程原理或风格。在确定C++语言特性方面,真正的编程需要比纯粹的原理更重要。之所以在C的基础上创建C++,是因为C语言简洁、适合系统编程、使用广泛且与UNIX操作系统联系紧密。

基于C语言高效、简洁、快速和可移植性的传统,C++有三宝:

C语言代表的过程性语言

C++在C语言基础上添加的类代表的面向对象语言

C++模板支持的泛型编程

对于学习C++的人来说,这是福也是祸。是福,在于如果你掌握了C++,其他的语言真的是小case,一天翻完基础语法,三天上手,三个月精通一门新语言基本毫无问题;是祸,在于C++对编程知识的涵盖面太广了,学习难度巨大。

要知道,C++发展的脚步从未停下,如今大量用于各种计算平台的C++实现得以面世;而IS0C++标准(C++11和C++20)为确保众多实现的相互兼容提供了基础。这些标准规定了语言必须具备的特性、语言呈现出的行为、标准库函数、类和模板,让C++在不同计算平台和实现之间的可移植性。

也许你选择C++的原因是必须为一个C++项目提供技术支持,或者只是打算使用C++编写新的代码,不论理由是什么,这个决定都是非常明智的。未来,C++在底层开发的优势将会越来越不可或缺。

2

历时20年,再版6次,入门C++首选

作者Stephen毕业于加州理工学院,在美国加州大学伯克利分校获得博士学位。他单独或与他人合作编写的编程图书有十多本,其中《NewCPrimerPlus》获得了计算机出版联合会年度最佳“How-to”计算机图书奖,《C++PrimerPlus》获得了计算机出版联合会年度最佳“How-to”计算机图书奖提名。

早年间,Stephen写过另一本霸榜C语言入门类畅销书,这本书开创了优良的初级教程传统,比如:

初级教程应当是友好的、便于使用的指南。

初级教程不要求您已经熟悉相关的编程概念。

初级教程强调的是动手学习,通过简短、容易输入的示例阐述一两个概念。

初级教程用示意图来解释概念。

初级教程提供问题和练习来检验您对知识的理解,从而适于自学或课堂教学。

《C++PrimerPlus》建立在这样的基础之上,吸收了其中很多成功的理念,帮助您理解这种用途广泛的语言,并学习如何使用它:

对何时使用某些特性,例如何时使用公共继承来建立is-a关系,提供了概念方面的指导。

阐释了常用的C++编程理念和技术。

提供了大量的附注,如提示、警告、注意等

《C++PrimerPlus》的前4版在美国的总销售量超过了10万册。

年,人邮出版了《C++PrimerPlus》的第5版,不过那时是基于ISOC++标准编写的,该标准的官方名称为C++99和C++03(C++99/C++03),其中标准主要是对标准的技术修正,并没有添加任何新功能。

C++在不断发展,编写第六版时,新标准获得了C++国际标准委员会的批准。在制定期间,该标准名为C++0x,但现已改名为C++11。

在IT技术圈有句俗话,“追新不追旧”。历经20余年,6次改版,中文版累计销售突破30万册,并首次支持C++11新标准。这本《C++PrimerPlus(第6版)中文版》绝对可以成为你入门C++的首选。

事实上,这本书也经受住了时间的考验,并和读者一起成长,自然也得到了读者的认可。

对于系统编程语言来说,除了C++,我们没有太多其他的选择。D语言曾经有挑战C++的机会,但机会似乎已经消失,我预期未来G0语言也会挑战C++,但不管怎样,目前C++依然是王者。这本《C++PrimerPlus》是C++图书中内容丰富者。C++是一门很容易误用的语言,学习C++需要钜细靡遗。我选择用这本书复习并更新我的C++知识。

——创新工场首席架构师蔡学铺

3

双剑合璧——习题解答面世

作为《C++PrimerPlus(第6版)中文版》官方配套习题解答《C++PrimerPlus(第6版)》在之前版本的基础之上进行了全新升级,涵盖了C++语言的新进展以及C++11标准的详细内容。与之前的版本一样,其目标依然是为读者提供一本入门型、条理清晰、见解深刻的C++语言教程。

为了锻炼并提升读者的动手编程能力,《C++PrimerPlus(第6版)》除了在每章正文中包含了大量短小精悍的实例之外,还在每章末尾提供了颇有深度的综合性的复习题和编程练习题。本书编者对这些复习题和编程练习给出了自己的理解和解答。

来看看本书都有哪些亮点:

亮点一:思维导图式解读C++各章知识点

在每章开篇,会有一个思维导图,帮助读者直观理解本章内容;然后是一段简练的文字,用来梳理每章涉及的理论内容。

这种方式更妙之处在于可以帮助读者构建知识体系,所学的各种知识都可以在这种结构清晰的思维导图中展现。

亮点二:对复习题和编程练习进行了详细的剖析

每个程序员都经历过从学理论到实际敲代码的无助,明明感觉自己都吃透了,可为什么脱离了参考书,自己就只会写个#includeiostream?

其实,理论跟实践之间,隔着一个重要的因素——知其然更要知其所以然。

本书对《C++PrimerPlus(第6版)》中给出的练习进行了庖丁解牛式的分析,确保读者理解练习的目的以及代码为什么这样写,在这个过程中产生自己的思考,在彻底夯实理论知识的同时,进一步提升实际编程能力。

亮点三:海量实战案例

既然是习题解答,那这本书就测重实战操作,通过海量的练习进而把知识点融会贯通。全书共18章节,每章除了有重点理论概念汇总,每章最后的习题都有详细的编码和解析。

举个例子,C++程序可使用哪3种C风格字符串?

C++程序中使用的C风格字符串主要有3种形式,其中最常用的是字符数组的形式,其次是以双引号标识的字符串常量形式,最后也可以使用指向字符串首字符的指针的形式来表示。

其中使用字符数组形式表示和使用指针形式表示的字符串在程序中类似,使用双引号表示的是常量形式的字符串,程序中不能修改字符串的数据。

作为《C++PrimerPlus(第6版)中文版》理想的学习伴侣,《C++PrimerPlus(第6版)中文版习题解答》可以切实提升C++语言初学人员的编程技能,掌握C++语言编程的精髓,为后期的程序开发之路打下坚实基础。

两本书“双剑合璧”,特别适合需要系统学习C++语言的初学者阅读,也适合打算巩固C++语言知识或者希望进一步提高编程技术的程序员阅读。

作者:StephenPrata

译者:张海龙,袁国忠

本书针对C++初学者,从C语言基础知识开始介绍,然后在此基础上详细阐述C++新增的特性,因此不要求读者有较多C语言方面的背景知识。本书可作为高等院校C++课程的教材,也可供初学者自学C++时使用。本书是一本友好而易于使用的自学指南,适合用做编程课程的教材,也可供熟悉其他语言的开发人员参考,以更深入地理解C++语言的基本知识。

作者:[美]StephenPrata

编者:曹良亮

《C++PrimerPlus(第6版)中文版习题解答》共分为18章,每一章的主题与《C++PrimerPlus(第6版)中文版》完全一致。每章开篇采用思维导图的方式列出本章的知识点,然后对每章的重点内容进行了梳理总结,最后则对每章中的复习题和编程练习进行了分析并给出了解答思路,确保读者在彻底夯实理论知识的同时,进一步提升实际编程能力。

包邮送书

抽20位幸运粉丝,

《C++PrimerPlus》

或《C++PrimerPlus》习题解答

任选一本包邮送

活动截止时间:年12月26日10:00▼点击参与抽奖活动预览时标签不可点收录于话题#个上一篇下一篇
分享 转发
TOP
发新话题 回复该主题