第一章 开始

课后习题及答案:
https://blog.csdn.net/qq_29762941/article/details/82658064

1.在main函数中return 0 和 return -1的区别

对程序执行来说,没有区别;0 和-1 最终以程序退出状态码返回,代表该程序执行是否有异常。
该问题可以延伸到main函数是如何被执行的:
fork()->execve()->_start启动例程->为main函数执行准备好argc、argv、envp等->调用main()->回到启动例程,执行exit(main函数的返回状态码)->exit()会执行一些退出函数,比如刷新,关闭文件描述符等操作。
参考:https://cloud.tencent.com/developer/article/1439033

2.std::cin, std::cout, printf, scanf的用法及实现

1)cin、cout头文件; printf、scanf头文件<stdio.h>
2) cin、scanf多个输入参数之间,用空格或enter键都可以,如果一个输入参数里包含空格,那么空格之后的内容会丢失;
3)用法参考:
https://www.cnblogs.com/MAX-ZMY/p/11540058.html
https://blog.csdn.net/weixin_44023525/article/details/84963597
4)实现:没找到

3.重定向标准输入、标准输出

< 文件名 重定向了标准输入;> 文件名 重定向了标准输出;
./程序名 < 文件名 > 文件名

第二章 变量和基本类型

1.基本内置类型

1)算术类型:字符、整型、布尔、浮点
char、wchar_t:
https://blog.csdn.net/freestyle4568world/article/details/49591739
https://blog.csdn.net/cwj649956781/article/details/15338129
2)整型、浮点型、单精度、双精度:
https://blog.csdn.net/zyhmz/article/details/57075473

3) 空类型:用于特殊场合,不对应具体的值,如return void

2.类型转换

https://www.jianshu.com/p/c678e5dab87e
猜测:编译器会将类型转换翻译成命令?

3.变量

1)声明和定义:
https://www.jianshu.com/p/92e81ecc8737
2)struct和数组的初始化为0的方法:
https://blog.csdn.net/wordwarwordwar/article/details/85001876

4.复合类型

1) 引用:别名;必须初始化,一旦与初始值绑定,不可解绑再重新赋值。不可赋空值。
https://blog.csdn.net/weixin_34240520/article/details/86403268

2)指针:指针本身就是对象,可以不初始化,但建议初始化,否则易引起运行时错误。
3)引用和指针的区别:
https://blog.csdn.net/u012611644/article/details/89055038
https://baijiahao.baidu.com/s?id=1624099009536720942&wfr=spider&for=pc
汇编代码:从汇编来看,引用是个常量指针,大小和指针一样大,是有内存空间的

    15:  int x = 0;
008118AE C7 45 F8 00 00 00 00 mov         dword ptr [x],0  16:  int& y = x;
008118B5 8D 45 F8             lea         eax,[x]
008118B8 89 45 EC             mov         dword ptr [y],eax  17:    int* z = &x;
008118BB 8D 45 F8             lea         eax,[x]
008118BE 89 45 E0             mov         dword ptr [z],eax  18:    y = 3;
008118C1 8B 45 EC             mov         eax,dword ptr [y]
008118C4 C7 00 03 00 00 00    mov         dword ptr [eax],3  19:    *z = 4;
008118CA 8B 45 E0             mov         eax,dword ptr [z]
008118CD C7 00 04 00 00 00    mov         dword ptr [eax],4

dword 双字 就是四个字节 ptr pointer缩写 即指针 []里的数据是一个地址值,这个地址指向一个双字型数据
比如mov eax, dword ptr [12345678] 把内存地址12345678中的双字型(32位)数据赋给eax

5.const 限定符

顶层const\底层const
https://blog.csdn.net/jinsan0129/article/details/81907900

6.处理类型

1)typedef\using
2)auto\decltype
https://blog.csdn.net/wk_bjut_edu_cn/article/details/81951764
3)auto、decltype的区别
auto不仅推导了类型,还进行了初始化;而decltype只采用类型;
auto在推导数组的类型时,会将数组名转换为指针;而decltype不会;
auto在推导类型时,会忽略顶层const,而decltype不会;
加双层括号的decltype得到的类型永远是引用;
https://blog.csdn.net/chigusakawada/article/details/80071295

第三章 字符串、向量和数组

推荐使用!= 和 == 而不是<、>来做判断,因为C++的大多数容器都重载了!= 等,但没有重载<、>等。

1.using

1)命名空间的使用
2)起别名:using int_array = int[4];
(等同于C语言中的typedef int int_array[4] )

2.标准库类型string

1)string对象的初始化:直接初始化(用构造函数),拷贝初始化(用一个已有的对象来初始化)
2) string对象会自动忽略开头的空白(即空格符、换行符、制表符等)并从第一个真正的字符开始读起,直到遇见下一处空白位置

3) getline函数的参数是一个输入流和一个string对象,函数从给定的输入流中读入内容,直到遇到换行符为止(注意换行符也被读进来了),然后把所读的内容存入到那个string对象中去(注意不存换行符)。

3.C风格字符串

1)C语言中没有string类型,用char[]来存储字符串,因此string类型对应的>、+、等操作不适用于char[]
2)C语言中的字符串,应使用<string.h>中的字符串处理函数,strlen、strcmp,strcat,strcpy等。
3) 可以用C语言中的字符串初始化string类型,但不可用string类型来初始化C语言中的字符串,除非使用c_str()

4.标准库类型vector

1)欲使用vector,应先包含头文件
2) 定义和初始化vector对象,应注意()和 {}的区别:

3)注意vector的resize()和reserve()的区别:
https://www.cnblogs.com/qlee/archive/2011/05/16/2048026.html

5.数组

1)不允许拷贝和赋值。不能将数组的内容拷贝给其他数组作为初始值,也不能用数组为其他数组赋值。

2)使用数组名字的时候,编译器一般会把它转换成指针,因此定义数组的时候必须指定数据类型,不允许用auto关键字由初始值的列表推断类型。:


3)C++11使用于数组的标准库函数begin()和end()

4)可以用数组初始化vector,但不可用vector初始化数组:

5)多维数组

C++ primer 一、二、三章相关推荐

  1. C Primer Plus第三章总结

    C Primer Plus第三章总结 关于整数和浮点数 关于整数的常用的关键词有:char.int .long.longlong.unsigned-- 浮点数常用的关键词有:double.float ...

  2. C++ Primer Plus 第四(二,三)章答案 复合类型

    复习题 第二三章只做了几个题,从第四章开始都做了. 代码全都是编译运行通过了的 practice 2.7.7(第二章编程练习第七题) #include <iostream>using na ...

  3. 【数分书单】业务学习《从零开始做运营入门篇》第一/二/三章小结

    <从零开始做运营入门篇>by 张亮 第一章 关于运营的一些实话实说  1 苦逼的运营产品两兄弟 运营需要积累,实力的积累,经验的积累,对用户了解程度的积累,对数据敏感程度的积累:长期磨练出 ...

  4. C Primer Plus 第三章 数据和C 阅读笔记

    第3章 数据和C 3.1 示例程序 3.1.1 程序中的新元素 3.2 变量与常量数据 3.3 数据:数据类型关键字 3.4 C语言基本数据类型 3.4.1 int类型 3.4.2 其他整数类型 3. ...

  5. 《C++ primer》--第三章

    习题3.2 什么是默认构造函数? 解答: 默认构造函数就是在没有显示提供初始化式时调用的构造函数.它由不带参数的构造函数,或者为所有形参提供默认实参的构造函数定义.如果定义某个类的变量时没有提供初始化 ...

  6. 部分代码_C primer plus 第三章 (代码部分)

    3.1 platinum.c /* platinum.c -- your weight in platinum */ #include<stdio.h> int main(void) {f ...

  7. C Primer Plus 第三章编程练习一

    1.通过试验(即编写带有此类问题的程序)观察系统如何处理整数上溢.浮点 数上溢和浮点数下溢的情况. #include <stdio.h> #include <limits.h> ...

  8. C Primer Plus第三章课后练习答案

    其他章节答案 /*The third Unit programming answer*/ //Project 1 #include <stdio.h> int main(void) {in ...

  9. c++ primer plus 第三章课后习题

    1.编写一个程序,要求用户使用一个整数指出自己的身高(单位为英寸,然后将身高转换为英寸和英尺).该程序使用下划线字符来指示输入位置.另外,使用一个const符号来表示转换因子. 自己写的 #inclu ...

最新文章

  1. Tor 出口节点将运行在图书馆的电脑上
  2. 咖啡,一种心情的境界
  3. python实现api server_使用Python的http.server实现一个简易的Web Api对外提供HanLP拼音转换服务...
  4. svn Error:Wrong committed revision number: -1。
  5. 复旦大学女教授告诉你:朋友是什么?
  6. gerber文件怎么导贴片坐标_PCBA贴片加工厂家的上机贴片编程
  7. 2021巨量引擎连锁经营行业洞察报告
  8. kitti数据集简介、百度网盘分享 kitti-object、kitti-tracking 全套数据集 自动驾驶
  9. 求10000以内n的阶乘(openjudge 2923)
  10. 【优化算法】人工鱼群优化算法(AFSA)【含Matlab源码 1078期】
  11. 世界上最好玩的6种表情符号编程语言
  12. 计算机毕业设计-SSM商场餐厅管理系统-JavaWeb商场餐厅管理系统
  13. Android变声(SoundTouch)
  14. android 颜色透明度16进制换算
  15. Vue项目在页面添加水印功能
  16. 一级下拉对应多个二级下拉联动
  17. 使用EFR32作为Zigbee/Thread的sniffer的用法
  18. 【计算机网络】虚拟IP原理
  19. 超市服务器软件系统软件,星宇超市收银软件服务器
  20. CreateDialog和DialogBox的区别,模态对话框与非模态对话框

热门文章

  1. xml配置php虚拟路径,apache增加虚拟路径和映射中文路径
  2. LaTeX 制作(跨页)长表格
  3. 超快捷还原达梦数据库dmp
  4. Excel如何使用CONCAT函数
  5. CodeKK源码地址
  6. Win10为什么电脑在有密码的情况下,睡眠后不用输密码打开?
  7. 几款好用的Markdown 写作工具推荐(下)
  8. 4.1 不定积分的概念与性质
  9. 聊天消息敏感词屏蔽系统(字符串替换 str.replace(str1, *) )
  10. 计算机传票算录入测试,传票算