开启掘金成长之旅!这是我参与「掘金日新计划 · 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 类型修饰符:*,&