C++Primer学习笔记12.3

119 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第1天,点击查看活动详情

2变量和基本类型

2.1基本内置类型

2.1.2类型转换

取模和取余运算P32:

对于整型数a,b来说,取模运算或者求余运算的方法都是:

1.求整数商: c = [a/b];

2.计算模或者余数: r = a - c*b.

例1.计算:-7 Mod 4

那么:a = -7;b = 4;

第一步:求整数商c:

①进行求模运算时:c = [a/b] = -7 / 4 = -2(向负无穷方向舍入),

②进行求余运算时:c = [a/b] = -7 / 4 = -1(向0方向舍入);

第二步:计算模和余数的公式相同,但因c的值不同,

①求模时:r = a - c* b =-7 - (-2)* 4 = 1,

②求余时:r = a - c* b = -7 - (-1)* 4 =-3。

针对P32 unsigned char c = -1 //假设char占8比特,c的值为255

c = -1/256 = -1;

r = -1 - (-1 * 256) = 255;

2.2变量

2.2.1变量的定义

在C++里,初始换和赋值是完全不同的两个操作,但往往我们会把它们给搞混。初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值来代替。

C++11新特性:列表初始化得到全面应用 p39

2.3复合类型

2.3.1引用

引用为对象起了一个名字,引用类型引用另外一种类型。

定义引用时,程序把引用和它的初始值绑定在一起,而不是将初始值拷贝给引用。引用并非对象,相反的,它只是为一个已经存在的对象所起的另一个名字。因为引用本身不是一个对象,所以不能定义引用的引用。

2.3.2指针

与引用的不同

1、指针本身就是一个对象,允许对指针赋值和拷贝,而且在指针的生命周期内它可以先后指向几个不同的对象。

2、指针无须在定义时赋初值

2.3.3理解复合类型的声明

基本数据类型和类型修饰符的关系,其实后者不过是声明符的一部分罢了。

基本数据类型:int 类型修饰符:*,&