C++primer梗概——第2章

2.1基本内置类型

基本内置类型包括算数类型和空类型。

2.11算数类型

类型的储存机制,地址的概念。

2.12类型之间的转换。

*:表达式中同时出现无符号int类型和int类型的情景。

2.13字面值常量

不同类型字面值常量的表示方法。

转义序列。

指定字面值的类型(前缀、后缀)

2.2变量

2.21变量定义

变量定义的基本形式是:类型说明符+变量名。

对象:具有某种数据类型的内存空间(本书把类和内置类型都算作对象)

变量的初始化:

  初始化和复制是两个截然不同的操作。

  列表初始化(c++11新特性)。

  变量未做初始化时其值的不同情况。

2.22变量声明和定义的关系

声明使得一个文件能引用别的文件的变量。

定义负责创建变量名和与之相关的实体。

声明可以多次,定义只能一次。

extern的使用。

2.23标识符

变量命名规范

2.24名字的作用

2.3复合类型

介绍复合类型中的两种:引用和指针。

变量的定义的一种更加通用的描述是:基本数据类型+声明符

2.31引用(左值引用)

作为对象的别名与其绑定,必须初始化且初始化后不能再更改绑定到别的对象。

对引用的操作实际上都是对其绑定对象的操作。

引用不是对象,不能定义引用的引用,也不能定义引用的指针。

引用的类型要和对象的类型严格匹配,且引用只能绑定在对象上而不能与字面值或某表达式的结果绑定在一起。(有例外,见)

2.32指针

指针本身是一种对象。

指针的值(即地址)应属下列4种状态之一:

  1.指向一个对象

  2.指向紧邻对象所占空间的下一个位置

  3.空指针

  4.无效指针

  访问2,3,4类型的指针都将引发错误。

*:void*指针

  只能用于与其他指针比较、作为函数的输入输出、赋值给另一个void*指针,而不能用于操作所指的对象。

2.33复合类型的声明

确定代码中复合类型变量的类型:从右向左阅读

int *p;
int *&r = p;    //对指针的引用

2.4const限定符

const限定的变量一旦初始化后就不能更改(用处:希望用一个变量表示缓冲区大小,使用变量的好处是当觉得缓冲区大小不再合适时很容易对其进行调整)

const对象必须初始化。

默认情况下,const对象仅在文件内有效:

  即各个文件的const变量相互独立,不用文件允许有同名的变量。

  如果某些时候有这样一种const变量,它的初始值不是一个常量表达式,但又却是又必要在文件间共享。这种情况下我们不希望编译器为每个文件分别生成独立的          变量。相反,我们想让这类const对象像其他(非常量)对象一样工作,也就是说,只在一个文件中定义const,而在其他多个文件中声明并使用它。则有下面用法:

  在const变量的定义和声明前都加extern

文件1:
extern
const int bufSize = fcn();    //在file_1.cc定义,extern指明bufSize并非本文件独有
文件2:
extern const int bufSize;        //在另一文件中声明

2.41const的引用

猜你喜欢

转载自www.cnblogs.com/loganlzj/p/9328426.html