![ca76e01c5de10d6046f1f64b8e526caf.png](https://img-blog.csdnimg.cn/img_convert/ca76e01c5de10d6046f1f64b8e526caf.png)
本书简介
一部C/C++语言的基础语法教程,面向零基础的初学者。C++是在C语言的基础上做了部分修改和扩展。本书的前半部分(1-19章)主要是C语言部分,而后半部分(20-31章)则是C++对C语言的扩展。
本书从实际工程需要出发,介绍了一个C/C++从业人员所必需掌握的全部语法、核心概念和基本技能,消除了学习考试与实际工作之间的差距。具体地讲,书中不仅介绍了函数、指针、结构体、类等基本语法,也介绍了“传值与传地址”、“字符串”、“深拷贝与浅拷贝”、“动态创建对象”、“安全地使用指针”、“面向对象编程思想”等核心概念。同时,书中还讲解了初级程序员所必须掌握的知识和技术,如“单步调试”,“编码规范”,ANSI函数库,文件操作,标准模板库STL的使用。
本书配备免费的全套视频教程,在线题库及解析,可结合纸质教材同步使用。书中的近300个示例的源码、以及所有相关资料均可在官网http://afanihao.cn上获取。
前言
一、背景
作为一个有十余年软件开发背景的从业人员,作者在招聘面试中发现,现在的绝大多数应聘者往往缺少基本的语法基础和实际的动手能力,更不用说对核心概念的理解了。这似乎表明现有的教材或教育方法,与实际的工作要求之间存在着比较严重的脱节。
因此,作者希望创建一套全新的、完整的、立体的学习体系,让学员能够打下牢固的语法基础,建立对核心概念的正确认识,并掌握基本的动手能力。这套体系包含纸质教程、视频教程、在线题库、进阶教程四大要素。
二、本书特点
本书是目标体系的一个组成部分,它也可以独立地使用。就这部纸质教材的特点来说,有以下几条:
①主次分明
C/C++的语法繁多,有些语法是过时的,有些语法很难但工作中并不常用。因此,为了避免给初学者带来不必要的干扰,书中对非重点的章节采用星号标注,并显式地说明这个章节是不重要的、或者是过时的、或者是第一遍学习的时候可以跳过的。
② 引例
在开始讲解每一章之前,通常会有一个引例,其作用是引起读者的对某个背景问题的思考。引例描述了一个语法产生的背景,使读者自然而然地理解本章引入的新概念。
③ 铺垫与衔接
本书各章节前后逻辑相承,一环连接一环。读者只要按顺序学习,就可以很容易地从最简单的概念过渡到复杂的概念。最终的效果是,读者会感觉整个学习过程中没有太难的东西。值得强调地是,如果读者不按顺序学习的话,则学习难度加倍。例如,如果读者不学习第3,4,5章,则难以读懂第8,9,10章。反之,如果按顺序学习则可以不知不觉地通过。
本书在编排上注重衔接。例如,第19章起承上启下的作用,使读者可以很容易地从C语言的struct过渡到C++的class。
④ 动手能力
第16,17章中介绍了标准C函数库的使用,第30章介绍了标准模板库的使用,它们都是实际工作中所必须掌握、常用而且重要的知识。
同时,在正文及附录中加强对同学动手能力的培训,强调良好的编码规范,强调自己动手建立项目、并掌握调试技术。
⑤ 核心概念
C/C++中的核心概念包括:“传值与传地址”、“字符串”、“深拷贝与浅拷贝”、“动态创建对象”、“安全地使用指针”、“面向对象编程思想”等等。实际上,如果不深刻理解这些核心概念,就无法写出正确地程序。所以,本书在合适地位置讲解了这些概念,使得同学不必再搜寻别的辅导教材,就可以在学习基本语法的同时掌握这些核心概念。
⑥ 充分的示例
本书中插入了近300个示例,为了保证示例的正确性,每个示例都经过作者验证,并且可以在官网上获取完整的示例源码。
⑦ 在线题库
本书使用在线题库的方式提供习题,习题按四星级难度标注,一星为基本练习,三星最难,四星为工业级应用题。每题配备提示、答案或解析,使得读者可以检验自己的思路是否合理。
三、其他
读者在学习完基本的语法之后,可以选择继续学习进阶类教程,使自己具备一个软件开发从业人员的基本素质。