指针的类型是可以被认为是x的地址类型,对指针赋值时也一定要赋以地址,这是
以前容易忽视的地方。而我们一般所说的名字其实就是对象的地址。引用和指针
不同是因为指针是间接访问,他只保存所指变量的地址,而引用则直接与变量的
值绑定在一起,但问题是引用是否也与变量共用一个地址呢?书上说:“引用的
一种最明显的实现方式是作为一个(常量)指针,在每次使用它时都自动的作间
接访问。但这只能是可以这样想象。一个引用并不是一个对象,不能像指针那样
去操作。”我认为这里提到的操作是想强调指针可以对地址进行操作,而且可以
通过间接访问修改变量的值,而引用只是简单的与变量绑定在一起,共用一个类
型。
对普通T&的初始式必须是一个类型T的左值,当其初始式是一个对象时,可以取得
它的地址。书上对对象和左值的解释在76页。一个对象就是存储中一片连续的区
域;左值就是引用某个对象的表达式。
对于一个constT&的初始时不必是一个左值,甚至可以不是类型T的,比如:
const double& cdr=1;
可以解释为:
double temp=double(1);
const double& crd=temp;
temp是一个临时变量,它将一直存在直到这个引用的作用域结束。
于是引用就需要区分为对变量的引用和对常量的引用,因为对变量的赋值将会变
成对于临时量的赋值。
引用的用途:
1,以常量的引用作为函数参数。
2,引用还可以用于定义一些函数,使他们既可以被用在赋值号左边,也可以用在
右边。