1、所谓的引用其实就是某对象的另外一个名字,他们都表示着同一个内存单元,共用相同的数据。
2、引用必须在被定义的时候用一个合适的对象对其进行初始化。由于函数的参数传递以及返回一个值的语义完全相同于初始化,所以可以将一个对象作为实参传递给一个引用行参,以及函数返回一个引用。这都是不违背引用必须初始化的原则的。
3、一个引用的值在初始化之后就不可能改变了,永远都不可能了,它将总是绑定到那个对象了。
4、对一个const T&的初始化不必是一个座值,甚至可以不是T类型的对象。这种情况的绑定过程如下:
[1]首先,如果需要,将对对象进行隐式类型转换为T类型。
[2]然后,将该对象暂存到一个类型T的临时变量中。
[3]最后,将这个临时变量用作初始化的值。
这种情况下,初始化引用的临时变量将一直存在,直到这个引用的作用域结束。