觉得C/C++难懂的、面临找工作面试笔试的,速来看这本书!

2023-05-16

如果你是C/C++的初学者,请看这本书,因为其他的书也许你看了还不如不看,一定要选一本好书;
如果你正准备求职,那么请认真看这本书,因为这本书会教会你工作中必备的知识,相信你即将面临的语法类题目不会超出此书的范围;
如果你已经工作了一到三年,那么是时候提高自己的技术水平了,从第一章看起,这本书给解释工作中遇到的疑惑;
如果你已经工作了三年以上,并且准备以软件开发为自己的职业,我没什么要多说的,自己看看就明白了。

进入文字教程

进入官方视频教程@优酷

进入留言

进入1000道C/C++练习题笔试题及答案

关于本书

2014年的时候,我有机会跟在校的计算机本科生接触,发现他们还在使用那本源自上个世纪的教材。中国的IT业正蓬勃发展,而为产业输送人才却还用这本古老的教材,这种这是件很痛心的事情。当那些同学因看不懂发愁的时候,我只能说即使有能力考上清华的学生,也不一定能看懂这本书吧。让业内人士评价这本书,它至少带来了以下问题:① 打消了学习者的兴趣,因为太看起来难了,从而使一部分原本适合于本行业的离开了本行业② 降低了毕业生的编程能力,使得公司在接手新毕业生时非常头疼。

C/C++非但不难,而且简直说是很有趣;但它的有趣与否,取决于是否有一本好书指引。一本坏书,不知所云,让你事倍功半;一本好书,循循善诱,则让你事半功倍。让年轻的学生免于痛苦、少走弯路,让C/C++的编程真正的回归有趣,是本书的创作意图。虽然最初的想法起于2008年,但正如大多数业内人士一样,我也是没有时间和意志来完成这本书的。直到2014年,我才下定了决心:是做这件事的时候了。我难以挑战既有的垄断,但是,只要有一部分人能看到我的书、从我的书中收益,我也就满足了。

 

先说说标题。一方面,为什么它是“C/C++学习指南”而不是“C++编程指南”呢?业内人士都知道,C++语言是C语言的扩展,在语法上兼容(涵盖)C语言的。但是考虑到部分读者可能是初学者,未必懂得C和C++之间的关系,所以就在标题中显式的表明这本书“既适合C的学习者、也适合C++的学习者”。在具体的章节安排上也考虑了这一点,对于只需要C的读者,只需要学习前18章(第14章除外)、并结合附录“C++与C语言的区别”。

另一方面,为什么它叫“学习指南”,而不是“编程指南”呢?这是因为这一本语法教程,重点是讲解语法。而编程则是一个更大的概念,不但要懂语法,还要懂实际操作和专项知识(多线程、互斥、网络通讯、图形界面等等)。但为了让学习者具有一定的工程能力,本书专门配套的VC的基本使用、调试方法,标准C函数的用法,标准模板库(STL)的用法。

 

然后再说说正文部分。正文共27章,覆盖了C++的所有语法点。它们的顺序是被精心安排的,按顺序学习,才是本书的最有效的学习方法。其中,有些章节被标记为星号,这意味着几点:①在第一轮学习时,此章节应该跳过;一般不可以过分深入这些章节,否则会影响学习的连贯性② 跳过此节,不影响后续章节的学习③ 有些概念在C++里属于生僻语法,一般都会用到、或者不建议使用,这些都有专门的提示。

本书的一个核心特点是使用内存视图来解释问题。变量对应于内存,内存具有地址。读者应该理解这一点,也不必要深刻理解这一点。只要理解了这一点,C++的众多看起来比较难的概念也就被水到渠成的击破。比如,指针的问题,动态分配内存的问题,传指与传引用的问题,如果从内存视图来理解,应该变得非常简单了。

本书的另一个核心特点是对编程误区的规避。有些东西是很好理解的,但是由于被不正确的指引,使得大家对它的理解都稀里糊涂。比如,char明明是表示整数,可是大多数教材都叫它字符。比如,明确指示“指针”和int型本质上一样,表示的地址。又比如,传值和传引用的问题,是C++编程的一个核心问题,在本书中就做了清晰的诠释。

 

本书的再一个核心特点是工程性强。和大多数教材不一样,本书不仅仅有语法,还有实际操作,使得读者具有最基本的工程能力。仅有语法是做了事情的,所以本书还配备了对标准C函数数、STL标准模板库的讲解和示范,以及对于工程师极为重要的技术:调试技术。而对于只有在进入企业才能接触的“编程规范”,作者也希望在学编程的一开始就告诉读者,以便为企业的培训部门分担一部分压力。读者学完本书,就可以很容易地对接到实际工作中,不会再像以前的毕业生那样对实际工作一脸茫然了。

最后再说说附录。有人认为附录存的是“花绪”,是些不重要的内容。这么理解是严重错误的。附录的存在,是因为有些知识不适合放在主线上讲述,也就是没法像正文那样像流水一样按顺序来讲。附录之所以成为附录,有几个方面的原因。① 它是综合性的,不属于某一章、某一知识点,而是跟好多个章节都有关系。比如,《VC2008调试方法》中的技术可以运用到第3-16各章中。 ② 它篇幅较长,插在正文中在视觉上颠倒主次。 ③ 它是总结性的 ④ 它具有较高技术难度,通过它的学习可以更好的理解正文。

 

总之,我希望这是一本易读的书,能像我读过的那些优秀的书一样,好到让人“不可能读不懂”。我希望这一本书对大多数人有益的书,这一点似乎不必担心。我希望这是一本广受欢迎的书,因为只有传播得越广,才能让越多的人受益。

 

邵发

2015/3/10

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

觉得C/C++难懂的、面临找工作面试笔试的,速来看这本书! 的相关文章

  • 操作系统(四):动态链接与静态链接的区别

    在回答这个问题之前希望大家大概了解一个文件编译的过程 xff0c 比如一个C文件在编译成功后文件夹里的文件会有什么变化 xff0c 大家可以先去创建一个helloworld c的文件 xff0c 观察其编译后的变化 那么问题来了 面试官经常
  • 【OpenVINS】(一)ZUPT

    参考 xff1a Measurement Update Derivations Zero Velocity Update 在典型的自主汽车场景中 xff0c 传感器系统将在停止灯处变得静止 xff0c 其中动态物体 xff08 例如交叉路口
  • OpenVINS与MSCKF_VIO RK4积分对比

    VIO系统在使用IMU测量值进行状态预测时 xff0c 需要将连续时间的微分方程离散化为差分方程 xff0c 离散化的本质是积分 xff0c 根据数值积分近似程度不同 xff0c 常用的有欧拉法 中点法和四阶龙格库塔法等 xff0c Ope
  • 全盘拷贝linux系统,转移至另一硬盘

    首先制作ubuntu启动盘 xff0c 选择try ubuntu进入live ubuntu系统 查看需拷贝硬盘盘符 span class token function sudo span span class token function
  • EKF SLAM

    EKF 方法是解决 SLAM 问题的一种经典方法 xff0c 其应用依赖于运动模型和观测模型的高斯噪声假设 在 SLAM 问题首次提出不久后 xff0c Smith 和 Cheesman 及 Durrant Whyte对机器人和路标间的几何
  • 如何将立创EDA中的元器件的原理图/封装和3D模型导入AD的库中

    如何将立创EDA中的元器件的原理图 封装和3D模型导入AD的库中 工具 xff1a AD 立创EDA专业版 fusion360 或其他3D软件 导入原理图 封装 在立创商城复制所需元器件的编号 打开立创EDA标准版或专业版 xff0c 这里
  • Xshell 提示 “要继续使用此程序,您必须应用最新的更新或使用新版本“的解决方案

    要想解决Xshell提示更新最新版问题 有两种方案 方案一 手动修改系统时间 步骤如下 右键右下角时间 弹出如下窗口 2 选中 调整日期 时间 A 并点击 弹出如下页面 更改时间 更改成之前的年份 如下图 更改成功后 再打开相应的应用 Xs
  • 2020.2.22 排位赛 G - Bucket Brigade(BFS)

    Bucket Brigade 题面 题目分析 BFS模板题 代码 span class token macro property span class token directive keyword include span span cl
  • Canal入门(二)

    Canal入门 xff08 二 xff09 canal kafka quickStart 1 基本说明 canal 1 1 1版本之后 默认支持将canal server接收到的binlog数据直接投递到MQ 目前默认支持的MQ系统有 ka
  • PID调节三个参数的作用

    1 比例调节作用 xff1a 按比例反应系统的偏差 系统一旦出现了偏差 比例调节立即产生调节作用用以减少偏差 比例作用大 可 以加快调节 能迅速反应误差 xff0c 从而减小稳态误差 但是 xff0c 比例控制不能消除稳态误差 过大的比例
  • (centos7)docker+jenkins运行python自动化

    目录 一 实现思路 二 环境准备 1 在liunx上安装docker 2 docker安装jenkins 三 访问前设置 四 配置jenkins容器 五 jenkins插件安装 1 安装git 2 安装docker 3 html Publi
  • OJ在线编程常见输入输出练习

    OJ在线编程常见输入输出练习 4 a 43 b 4 输入描述 xff1a 输入数据包括多组 每组数据一行 每行的第一个整数为整数的个数n 1 lt 61 n lt 61 100 n为0的时候结束输入 接下来n个正整数 即需要求和的每个正整数
  • js中数组与集合的相互转化

    数组 gt 集合 var a 61 1 2 3 4 5 5 var set 61 new Set a console log set 1 2 3 4 5 集合 gt 数组 var set 61 new Set set add 1 set a
  • Linux make/Makefile详解

    会不会写makefile xff0c 从侧面说明了一个人是否具备完成大型工程的能力 一个工程中的源文件不计数 xff0c 其按类型 功能 模块分别放在若干个目录中 xff0c makefile定义了一系列的 规则来指定 xff0c 哪些文件
  • 大疆H20系列吊舱,录制的视频含义

  • 写算法的方法

    写算法步骤 xff1a xff08 以下方法 xff0c 都是老生常谈 但是非常简单有用 xff09 数据结构 xff08 所有的算法都是基于数据结构的操作 所有算法都是针对数据结构的属性进行操作 列出所有的属性 xff0c 写算法逐项修改
  • Windows系统下QT+OpenCasCAD仿真开发

    背景 最近开发了一个六自由度机械臂调姿平台的控制软件 xff0c 集成了API激光跟踪仪和KUKA机器人 xff0c 实现了根据产品的测量位姿驱动仿真环境中模型并且实现模型间的碰撞检测 其中KUKA机器人的控制可以参考笔者以前的博客 xff
  • 飞控IMU姿态估计流程

    飞控中使用加速度计 xff0c 陀螺仪 xff0c 磁罗盘进行姿态估计算法流程 step1 xff1a 获取陀螺仪 xff0c 加速度计 xff0c 磁罗盘的原始数值 step2 xff1a 陀螺仪 xff0c 加速度计减去固定的偏移后得到
  • 图拓扑关系可视化的qt实现

    前言 最近在做数据可视化的相关工作 xff0c 包括曲线图 xff0c 航迹图 xff0c 图结构 xff0c 树结构等 其中树结构相关的工作笔者以前曾经做过 xff0c 可以参考笔者以前的博客 qt自定义树形控件之一和qt自定义树形控件之

随机推荐

  • 基于qwt3D 的3D航迹图的实现

    前言 使用qt实现三维空间直角坐标系中的航迹实时绘制网上很难查到资料 在qt下实现3D绘图通常实现方式有OpenGL VTK qwt3d QtDataVisualization等 Qcharts QCustomPlot只支持2D绘图 这里给
  • 树莓派4b连接RealSense T265

    使用的是树莓派4 8G版本 准备连接RealSense T265的双目相机 T265目前官方编译好的的只有Ubuntu16和18 其他的系统版本需要自己编译realsense驱动 安装ubuntu20 10 https ubuntu com
  • Dockerfile文件解释

    一 先来看一个简单的 Dockerfile 这个Dockerfile作用是打一个python3项目环境 FROM python 3 alpine WORKDIR app ADD app RUN pip3 install r requirem
  • 一文读懂BLOB算法

    算法执行效果 相关参考资料 看着玩的 BLOB算法简述 https blog csdn net icyrat article details 6594574 话说这老哥写的也太 简 了吧 完全口水话 把blob算法说的很神秘 说什么把blo
  • Sobel算法优化 AVX2与GPU

    国庆假期 一口气肝了10篇博客 基本上把最近的成果都做了遍总结 假期最后一天 以一个比较轻松的博客主题结束吧 这次是Sobel算法的AVX2优化 执行效果 sobel算法的原理 使用如下的卷积核 c 硬写 span class token
  • 随机Hough直线算法的改进

    背景介绍 随机Hough直线算法相比Hough直线算法 xff0c 算法效率会有提高 xff0c 但仍不能满足工程需求 因此提出使用生长的随机Hough直线算法 该算法对随机Hough直线算法进行改造 xff0c 在随机选点转到Hough空
  • MATLAB编写的读取.mat文件数据并画曲线图的gui程序

    matlab编写的读取sd卡数据的gui程序 界面截图 xff1a 打开文件界面 xff1a 导入数据后截图 xff1a 是不是高端大气上档次 xff0c 不要急 xff0c 慢慢往下看 xff0c 后面更精彩 xff0c 代码会贴出来的
  • px4飞控位置估计lpe移植到vs

    本文主要内容 px4飞控的位置估计有两种方式 xff0c 一是inav xff0c 二是lpe xff0c 用到的传感器用加速度计 xff0c 磁场传感器 xff0c gps xff0c 超声 xff0c 激光 xff0c 气压 xff0c
  • 常见的信号平滑处理方法

    本文介绍了常见的信号平滑处理方法 xff1a xff08 一阶滤波 xff0c 互补滤波 xff0c 卡尔曼滤波 xff09
  • PX4代码学习系列博客(1)——开发环境配置

    写在前面 虽然有很多关于px4博客 xff0c 但还是想自己亲手写 xff0c 一来记录自己的学习过程 xff0c 以备将来复习 xff0c 二来方便后来者参考学习 xff0c 好多西当然要大家分享 关于px4飞控程序的博客 xff0c 我
  • PX4代码学习系列博客(3)——px4固件目录结构和代码风格

    写在前面 px4不是普通的单片机程序 xff0c 其中没有main函数 它实际上是一个操作系统 xff0c 上面运行着很多应用程序 xff08 类比windows xff09 xff0c 比如姿态解算 xff0c 位置解算 xff0c 姿态
  • PX4代码学习系列博客(5)——在px4中添加自己的模块

    怎么在px4中添加自己的模块 在 px4固件目录结构和代码风格 这一节 xff0c 曾经说过NuttX是一个实时的嵌入式系统 xff0c 上面可以像windows那样运行程序 那既然是应用程序 xff0c 那我们应该也能写一些可以在Nutt
  • PX4代码学习系列博客(6)——offboard模式位置控制代码分析

    分析offboard模式的代码需要用到以下几个模块 local position estimator mavlink mc pos control mc att control mixer 程序数据走向 mavlink 一般的offboar
  • selenium安装

    一 安装webdriver 1 下载安装包 下载地址 xff1a CNPM Binaries Mirror 注意 xff1a 下载版本应与自己的chrome的大版本一致 chrome版本查看 xff0c 设置 gt 关于chrome xff
  • 基于惯性轮倒立摆原理的自行车

    背景 自平衡车有很多种 xff0c 其中一种是利用惯性轮倒立摆原理 xff0c 早在2003年 xff0c 日本的村田顽童就已经问世 xff0c 它采用的就是惯性轮倒立摆原理 后来其他研究组织和个人纷纷效仿 xff0c 制作出了五花八门的基
  • 二维码的特征定位和信息识别

    二维码的特征定位和信息识别 背景介绍 视觉的方法可以用来估计位置和姿态 最容易想到的是在目标上布置多个容易识别的特征 xff0c 这样使用opencv相机标定和 相机畸变矫正 轮廓提取 solvepnp来获取目标相对于相机的位姿 在实际使用
  • 学生作业信息管理系统

    一 xff0e 引言 1 1编写目的 首先 xff0c 软件系统的设计报告可以出用户提出的模糊需求分析出具体的工程需求 xff0c 并转化为数据流图 xff0c 程序流程图 xff0c 模块图 xff0c 数据库设计等软件设计必要的底层步骤
  • NVIDIA显卡驱动版本,CUDA版本,cudnn版本之间关系及如何选择

    要配置NVIDIA显卡的CUDA和cudnn xff0c 各种版本之间的依赖关系以及与其他使用GPU的库版本兼容一直没有弄明白 xff0c 最近经过多次卸载重装 xff0c 终于成功配置好了显卡计算环境 xff0c 于是把各个驱动程序和库之
  • 机器人定位误差标定模型

    概述 以工业机器人为基础 xff0c 构建柔性制造单元或柔性生产线 xff0c 实现产品自动化 柔性化 智能化生产必将成为现代制造发展的重点 新型产业环境下 xff0c 工业机器人的应用范围将越来越广泛 作业任务也将越来越精细复杂 xff0
  • 觉得C/C++难懂的、面临找工作面试笔试的,速来看这本书!

    如果你是C C 43 43 的初学者 xff0c 请看这本书 xff0c 因为其他的书也许你看了还不如不看 xff0c 一定要选一本好书 xff1b 如果你正准备求职 xff0c 那么请认真看这本书 xff0c 因为这本书会教会你工作中必备