从头开始学习C++(C++Primer第五版)

文章目录

  • 前言:预热一下(请根据相关书籍阅读本篇文章)
  • 1、第一章:开始
  • 2、第二章:变量和基本类型(搁置中... ...)

前言:预热一下(请根据相关书籍阅读本篇文章)

  • 我自己是学过C、C++、Java、JavaScript 这四个,但是现在还是不清楚这之间的共同的和区别。因此,有必要预热一下。
  • 关于什么是编译性语言和解释性语言
  • 参考链接:编译性语言和解释性语言的区别
  • 我自己的整理:以下用C语言代替编译性语言,Javascript代替解释型语言。C语言在我以前用VC++写过之后,有一个 .exe文件,而这个文件可以直接点开使用,就好像一个程序一样。比如我下载的游戏,有一个launch.exe文件,点击可以运行游戏了。而JavaScript这样的,写过之后只是出来一个文本格式的文件,可以是记事本,可以是HTML,或者别的,但是C语言就看不到源代码。在我们需要运行JavaScript的时候,会通过一个叫做解释器.exe 文件(程序)运行,先将需要运行的那句人能看懂的源代码转为二进制码,再运行。综合比较一下1、 C语言编写的好处,就是只需要将源代码编译一次,转为二进制生成 .exe 文件,就可以反复运行了,点开,关闭就行。但是看不到源码,并且你也知道这个文件不一定能在任何的系统上运行,比如在Windows可以,在MacOS不一定行。也可能在64位系统行,32位不行,局限性大。2、 JavaScript编写的源代码,好处是每个系统都有对应的解释器,然后需要哪条语句就执行哪条,可以做到 “ 到处执行 ”。但是比较慢,因为要先编译再执行,而C语言的直接执行了。
  • 半编译半解释:典型代表JavaC#
  • Java是将人能看懂的源代码,通过编译器转为 .class的字节码文件(人和机器都看不懂),然后将这个字节码文件,转给给个系统上面的不同的JVM虚拟机运行,可以做到到处运行。可是为什么不直接成为解释性的呢?还要多一个转为字节码的步骤呢?其实我试验过,我们在写代码的时候会加很多注释,这些注释其实没有用,转为字节码就是筛掉这些注释,提取有用的,让文件小点,同时可以重复使用(这里我不太懂)。

1、第一章:开始

  • 代码:
#include<iostream>
int main() {//输入数字,用空格隔开,Ctrl+Z结尾,接上回车,打印各个数字输入的次数。std::cout << "输入数字,用空格隔开,Ctrl+Z结尾,接上回车,打印各个数字输入的次数:\n" << std::endl;int input = 0, store = 0;if (std::cin >> input) {int count = 1;while (std::cin >> store) {if (store == input) {count++;}else{input = store;std::cout << "数字" << input << "出现的次数为" << count << "次!\n" << std::endl;}}}return 0;
}

上面的代码是C++代码,统计输入并打印的数字的个数。

  • iostream是包含标准输入、输出的一个库(是什么暂时作者也没有懂)。std::cout代表命名空间std里面的cout,这个命名空间是存放很多名字的地方,我暂时只能理解为库吧,虽然不一样,但是我是理解为,一个库里面的有cout,而且别的库里面也可能有cout这个名字,所以加上专属的命名空间,就好比我是一班的小孟,这样就不会跟二班的小孟弄混了。
  • << / >> :这两个其实是输出/输入运算符。我用我自己的理解来描述一下这个使用运算符的过程。
std::cout << "数字" << input << "出现的次数为" << count << "次!\n" << std::endl;
  • 运算符最左边的cout,可以理解为一个缓存空间,然后从第一个运算符开始,运算符右边的交给运算符左边的。第一个是将input这个变量的值放入cout缓存空间,然后将第二个运算符右边的字符串放进去,再把第三个字符串放进去。此时一切可以正常打印了,但是,前面的步骤我是这样理解的:

    • 键盘输入的和程序里面写的东西转为输入流传到了缓存中,哪怕是输出,也得先写进cout代表的缓存区,这就是以上步骤。但是cout的作用就是打印,那它就会把缓存里要输出的显示出来。但是我们并没有结束输入流,同时也没有把缓存里面的数据转为输出流然后打印在显示器上。如果这个时候,程序崩溃了,那报错的时候,会把缓存里面的错误报出来,但是缓存里面还有我们待输出的数据,这样影响错误位置判断。因此加上endl的目的就是结束当前行(应该是结束输入流吧),然后将缓存的东西刷新到输出流,然后刷到显示器上面。
  • 在这里多嘴一句: C++最重要的一点就是面向对象,作者是学习Java后再回过头复习C++,因此感悟很多。所谓面向对象,就是程序员不需要考虑具体代码的编写,主要考虑要实现的功能,而这些具体功能的代码,其实可以想象成手机,我不需要考虑手机怎么做,我只要知道它有什么功能,我要用什么功能,就行。因此,引出新的类型:类类型 。我们知道什么int 、double 、float 、boolean 等等。所以这个类类型就是class 类型,这个类型是自定义的类型。比如我定义一个手机类型,在这个类里面写了打电话、发短信、上网等功能,而这些功能就是手机类里面的方法 。只是提一下。
  • 关于C++的开始就到此为止,其他代码有代码基础的都懂的,我就不赘叙了。

2、第二章:变量和基本类型(搁置中… …)

  • 学后总结:本章我初步认为很重要,毕竟说的是基本的数据类型,还有一些限定的东西。但是因为我们真正做项目不一定要到太多,我觉得这章又有点难啃,所以可以知道有哪些就行了。不过这只是我最初步的理解吗,可能真的做项目会用到很多。
  • 图片(给我自己看的,方便写总结)
  1. 类型与变量及其定义与声明
    1、类型:类型有:(很抱歉,作者因个人需求将直接从本书第六章开始,以后会补上)。

从头开始学习C++(C++Primer第五版)相关推荐

  1. 如何学习C++ primer 第五版

    作者:dawnmist 链接:http://www.zhihu.com/question/32087709/answer/54936403 来源:知乎 著作权归作者所有,转载请联系作者获得授权. 作者 ...

  2. C++ primer第五版学习记录:第二章变量和基本类型

    C++ primer第五版学习记录:第二章变量和基本类型 断断续续把第二章看完用了大概两周时间,发扬一下之前默写的传统,顺便让自己梳理一下该章节的具体框架及结构.可能会有理解错误的地方,欢迎大家批评指 ...

  3. C++ Primer 第五版 第6章——函数阅读笔记及习题答案(完整,附C++代码)

    C++Primer(第五版)第6章函数的阅读笔记及课后习题答案总结,课后习题答案是自己学习写出来的,如果有误,欢迎指正 还不完整,后续会更新添加 阅读笔记 C++ Primer 第五版 第6章 6.1 ...

  4. C++Primer第五版——习题答案+详解(完整版)

     C++Primer第五版--习题答案详解 新手入门必看的书.知识是一个系统化并且相互关联的体系,零散的东西每天收获如果不形成自己的体系的话,那将是毫无意义的,所以我觉得有必要将这本书先啃一遍,消化其 ...

  5. c++ primer 第五版 翻译 第一章

    许久未更新博客了,接下来更新的是c++ primer 第五版的翻译. 一来学习英语,二来巩固c++. 第一章开始 内容: 1.1写一个简单的c++程序 1.2初窥输入输出 1.3注释简介 1.4控制流 ...

  6. C++Primer第五版 习题答案 目录

    C++Primer第五版 习题答案 本文当作我学习C++的一个记录,这里的习题答案并不是标准答案,仅仅是我的理解,如有错误,请大家指出,谢谢! 参考的文章会在文末列出. 使用的系统为:ubuntu 1 ...

  7. C++Primer第五版——习题答案详解

     C++Primer第五版--习题答案详解 新手入门必看的书.知识是一个系统化并且相互关联的体系,零散的东西每天收获如果不形成自己的体系的话,那将是毫无意义的,所以我觉得有必要将这本书先啃一遍,消化其 ...

  8. 《C++ Primer 第五版》(第6.3~6.7节)——返回指向数组/函数的指针,函数重载,默认形参、inline函数和constexpr函数

    1.返回指向数组/函数的指针 顾名思义,就是函数返回值为指向数组/函数的指针. 数组的性质:不能被拷贝,函数也不能返回数组.但可以返回数组指针/引用,声明一个返回数组指针的函数,有四种方式,一种是直接 ...

  9. 《C++ Primer 第五版》(第4.11节类型转换) ————关于无符号数和有符号数的运算探究

    1.关于无符号数和有符号数的运算 关于无符号数和有符号数的运算,在我看来一直是觉得只要有无符号数和有符号数的运算,有符号数就转化为无符号数,但是在<C++ Primer 第五版>的p142 ...

最新文章

  1. 谷歌、阿里们的杀手锏:3大领域,10大深度学习CTR模型演化图谱(附论文)
  2. Redis 数据结构的底层实现 (二) dict skiplist intset
  3. python 文件格式转换_Python的处理数据,如何进行数据转换,学会三种方式
  4. Programming Computer Vision with Python (学习笔记七)
  5. Redis操作List类型
  6. NGenerics算法库是学习的好代码
  7. 一行或多行文本内容溢出显示省略号
  8. python3.6.5安装步骤-Centos7 安装Python3.6.5
  9. 【Java】JavaSocket编程开发聊天室-客户端核心部分
  10. 良心安利Unity3D U3D游戏源码素材网站
  11. Matlab实现小世界网络生成及其分析
  12. echarts 折线图 中有两条线 ,在鼠标悬停时显示数据
  13. 阿里云国际版跨境加速,全球加速和Squid 缓存代理解决方案
  14. 15.6. footnote 脚注
  15. (附源码)springboot大学生就业质量调查分析系统 毕业设计161457
  16. Markdownpad2安装注册
  17. H5时代的多行文本框
  18. 关于SQL_Errno1677导致主从复制中断处理
  19. 使用阿里云PCDN降低内容分发成本
  20. 入门 redux 和 @connect 装饰器

热门文章

  1. direct do造句 sb to_realize sb to do还是doing
  2. mysql灯是红色的_报警指示灯为什么是红色?
  3. NOI-1.2(02) 浮点型数据类型存储空间大小
  4. 实验12 子网划分
  5. 0x000001b8指令引用的0x000001b8内存该内存不能为read
  6. 统计学习方法04-16 PCA
  7. ffmpeg将视频flv格式转为mp4格式
  8. 计算机er保研选网络安全方向怎么样?
  9. 公司双飞燕键盘的主键盘上数字5上的欧元符号输入
  10. 蓝牙AoA精准定位产品