C++ Primer Plus第五版笔记(p1-50)

1 在unix中 echo 获得状态
2iostream 包含istream以及ostream:随着时间的推移,字符是按照顺序生成或者是消耗的
3cin标准输入 cout标准输出 Cerr标准错误 clog 一般性信息
4cin>>c1>>c2;连续输入
5cout是ostream的对象,第一个<<返回左侧cout,接着到第二个cout
6endl的效果是结束当前行,并将于设备关联的缓冲区内容刷到设备中
7std 命名空间
8注释分为 /* */ 以及//
9for while 循环
10读取数量不定的输入数据: while(std::cin>>value) 读取数据直到文件尾部 3 4 5 6 输出18 从键盘输入文件的结束符是crtl+z 然后再enter
11if 语句
12=与==的混淆
13自己程序的风格很重要, 要坚持自己的风格
14对于包含标准库的文件, 需要使用<>包围文件名
对于不属于标准库的头文件,则是用双引号””包围
15return -1表示失败,返回错误值
16一般多使用double 而不是float
17自动类型转换 p33
给无符号类型一个超出它表示范围的值时,结果是初始值对无符号类型表示数值总数取模后的余数。例如,8比特大小的unsigned char 可以表示0-255区间内的值,但我们付了一个区间以外的值过后,则实际的值是该值对256取模后所得的余数。因此,把-1赋给8比特大小的unsigned char 所得的结果是255

C++ Primer Plus第五版笔记(p1-50)_第1张图片

把负数转换成无符号数类似于直接给无符号数赋一个负值,结果等于这个负数加上无符号数的模
C++ Primer Plus第五版笔记(p1-50)_第2张图片C++ Primer Plus第五版笔记(p1-50)_第3张图片

给有符号类型一个超出它表示范围的值时,结果是未定义的,此时程序可能会工作,可能崩溃,但是也可能产生垃圾数据

18 别混用带符号类型以及无符号类型
19 浮点型字面值表现为一个小数或以科学计数法表示的指数,其中指数部分用E/e标识
3.14159E0
默认的,浮点型字面值是一个double, 可以用其余的后缀来表示其他的浮点型 p37

20 编译器在每个字符串借位添加一个空字符\0, 因此,字符串字面值实际长度要比它的内容多1

21 转义字符 \n换行符 双引号\” 单引号\’
C++ Primer Plus第五版笔记(p1-50)_第4张图片

22 泛化的转义序列 \7,\40,\115 如果斜杠后面八进制数字超过三个,那么只有前3个数 p36
23 指定字面值的类型:在字面值后加上LL,U,u,L表示不同含义 p37
24 对象是指一块能存储数据并拥有某种类型的内存空间

25 绝大多数类都支持无须显式初始化而定义对象
建议初始化每个内置类型的变量

26 extern int i;声明而不定义变量i
27 标识符:字母,数字,下划线;字母或者下划线必须是开头,对大小写字母敏感

28 c++ 关键字 p43
不太熟悉的关键字: alignas alignof asm enm inline mutable register reinterpret_cast static_assert static_cast thread_local throw union wchar_t

29 cout<<::reused< 30 定义引用时,程序会把引用和它的初始值绑定在一起,而不是将初始值拷贝给引用
31 引用必须初始化
32 不能定义引用的引用,不能&&a
33 引用只能绑定在对象上,不能和字面值或者某个表达式的计算结果绑定在一起
34 指针本身就是一个对象,允许对指针赋值以及拷贝,而且在指针的生命周期中它可以指向几个不同的对象。其二,指针无须在定义时赋初值,没有初始化也将拥有一个不确定的值
35 指针的类型实际上用于指定它所指向对象的类型,所以两者必须匹配
36 空指针不指向任何对象,在试图使用一个指针之前可以检查它是否为空 int *p1=nullptr
用字面值 nullptr 来初始化指针是c++11刚引入的新特性

37 过去的程序会用到一个名为NULL的预处理变量来给指针赋初值,这个变量在头文件cstdlib中定义,它的值是0
#include
int *p3=NULL;
38 预处理器是运行于编译过程之前的一段程序,预处理变量不属于命名空间std,而是由预处理器负责管理
39 在新标准下,尽量使用nullptr而不是NULL
40 建议初始化所有指针,如果实在不知道指向何处,请初始化为nullptr 或者 0
41 赋值永远改变的是等号左侧的对象
42 任何非0指针对应的条件值都是true
43 两个指针存放的地址值相同(两个指针相等)有三种可能:
都指向同一个对象
都为空
都指向另外对象的下一个地址

44 void可以存放任意对象的地址,不过比较有限,不能直接操作void 指针所指向的对象,因为不确定类型,而且无法访问内存空间所存的对象

你可能感兴趣的:(C++,c++,开发语言)