2.3复合类型
2.3.1引用
引用包括左值引用和右值引用,我们通常说的是左值引用,引用必须初始化,一旦初始化完成,引用将和它的初始化值对象之一绑定在一起。
引用本身不是一个对象,它只是为一个已存在的对象所起的另外一个名字,因此不能定义引用的引用。
引用在定义时要和绑定的对象严格匹配。而且引用只能绑定在对象上,不能与字面值或者某个表达式的计算结果绑定在一起。
2.3.2指针
指针实现了对其它对象的间接访问。
指针与引用的不同:
- 指针本身是一个对象,可以进行赋值和拷贝。
- 指针无需在定义是=时进行赋值操作。
指针可以利用&获取某个对象的地址,但是引用不是对象,没有实际地址,因此不能定义指向引用的指针。指针指向的对象必须和指针的类型匹配。
指针可以利用*访问某个对象,解引用操作仅适用与确实指向了某个对象的有效指针。
指针可以定义为空,不指向任何对象。在定义指针时要对指针进行初始化,并且尽量在定义完对象之后再定义指针。避免使用未初始化的指针。(?未初始化的指针和无效