今天就只做个开场白,以后慢慢向里面添加自己看书的心得和体会,以及笔记。
2.1.1. Integral Types
当把一个超出了无符号类型范围的值赋于一个对象时,取模存储。unsigned char test = 336,在test内实际存储的值为test == 80。因为unsigned char能取得的最大值是256
2.3
C++是一种静态类型的语言,在编译阶段会对用到的“量”进行类型检查。
2.3.2
C++标识符的要求:不能连续两个下划线连用、不能以划线后紧跟一个大写字母开头、函数外部的标识符不能以下划线开头。
2.3.3
int month,
day, year; //这样换行定义三个int变量也是可以的。
初始化对象(变量)的两种方法:
int ival(1024); // 直接初始化 int ival = 1024; // 拷贝初始化
这两者之间是有差别的(在面对class类型对象时),直接初始化更加灵活与高效
2.3.4
Variables(built-in type) defined outside any function body are initialized to zero.当定义在函数内部时,其值是未知的。
2.3.5
当声明一个变量时,又初始化了。此声明变为定义: extern double pi = 3.1416; // definition
因此:extern double pi = 3.1416; // definition
double pi; // error: redefinition of pi
2.4
2.5
引用在定义的时候必须被初始化:int ival = 1024; int &refVal = ival; // ok: refVal refers to ival 一旦一个引用被绑定到一个对象上,将没有办法再被重新绑定到其他对象上了。
2.9
C++头文件在编译的时候会耗费编译时间,不要包含过大的头文件。头文件必须只包含声明,因为头文件可能会被多个文件包含(一个程序只能定义变量一次);但是有三个例外:A. class B. const类型变量(编译时已经确定了值)c. inline 函数 这三种类型是可以定义在头文件中的。const类型变量,每个文件都有一个拷贝。(没有时间分配内存,编译器做了常量替换,把const在每个源文件中的引用都做常量替换)const在定义时必须初始化,在头文件中必须用文字常量来初始化。