天天看点

c++(17)一、二两章回顾2

第二章用了三天的时间看完,每天大概花了两小时时间,因为从上次看到现在时间过去的并不久,所以看得很快。在这个过程中,查漏补缺,把一些记忆不牢固的知识点再次记

录下来。不得不说,第一次看虽然一字一句看得很认真,但是第二次看才是真正的记住。如果没有第二次的回顾的话,感觉要不了多久,前面看得两章除了本来就会的东西,新

学的很快就会忘光掉。

在第二章类型转换中,将负数转换成无符号数的方法:因为计算机中对数的机器表示使用的是补码,所以只要计算出补码所表示的正数即可。

计算方法:只要用数值类型的表示范围的总数加上原来的负数即可。

其中,想要彻底理解这些概念,则需要了解机器数,真值,源码,反码,补码等概念。前面也曾记录过,取模与取余的区别。

一条 声明语句由一个基本数据类型和紧随其后的声明符列表组成。每个声明符命名了一个变量并指定该变量为与基本类型有关的某种类型。

引用本身并非一个对象。一旦定义了引用,就无法使其绑定其它对象。

void*指针不能直接操作所指向的对象,因为无法知道这个对象到底是什么类型。

空指针 nullptr(c++11)、0、NULL(cstdlib)

类型修饰符(&、*)

默认const只在文件内有效,如果想让const像其它常量一样工作的话,解决办法是,无论是定义还是声明,都添加关键字extern。

const的引用(个人理解,引用并非对象,const的引用只有一种意义: const的引用可以引用任何常量和非常量的对象,但是不能使用const的引用来改变与之绑定的对象的值)

指针和const(两种意义:顶层const,指针本身是常量(类型 *const 变量名)。底层const,指针指向的对象是常量(const 类型 *变量名)。)

常量表达式和constexpr(c++11新标准中,使用constexpr声明变量,编译器可以验证变量是否为一个常量表达式。)

字面值类型(算数类型、指针和引用都属于字面值类型)都可以被定义为constexpr。

constexpr仅对指针本身有效,与所指对象无关。p60

typedef(注意与指针结合使用的时候容易出现的问题)

auto类型说明符(c++11新标准,auto通常会忽略掉顶层const,保留底层const)

decltype类型指示符(c++11新标准。注意:1.指示符所使用的表达式是否为一个变量。2.解引用符的使用。3.表达式wait加上了括号,结果必定是引用。)