引用和指针
【摘自C++Primer】
引用(这里指左指引用)
引用为对象起了另外一个名字。引用并非对象,相反的,它只是为一个已存在的对象所起的另外一个名字。
一般在初始化对象时,初始值会被拷贝到新建的对象中。然而定义引用时,程序把引用和它的初始值绑定在一起,而不是将初始值拷贝给引用。一旦初始化完成,引用将和它的初始值对象一直绑定在一起。因为无法令引用重新绑定到另外一个对象,因此引用必须初始化。
指针
与引用类似,指针也实现了对其他对象的间接访问。然而指针与引用相比有很多不同点:
- 指针本身就是一个对象,允许对指针赋值和拷贝,而且在指针的生命周期内它可以先后指向几个不同的对象
- 指针无须在定义时赋初值。和其它内置类型一样,在块作用域内定义的指针如果没被初始化,也将拥有一个不确定的值
- 引用本身不是一个对象,因此不能定义指向引用的指针。但指针是对象,所以存在对指针的引用