转载自脚本之家 http://www.jb51.net/article/41048.htm
1:引用及其绑定的对象的关系:在数值上它们是联动的,改变你也就改变了我,改变我也就改变了你。事实上,访问对象和访问对象的引用,就是访问同一块内存区域。
2:你在引用的声明语句里把一个引用绑定到某个对象后,这个引用就永远只能和这个对象绑定在一起了,没法改了。所以这也是我用了“绑定”一词的原因。而指针不一样。当在指针的声明语句里把指针初始化为指向某个对象后,这个指针在将来如有需要还可以改指别的对象。
3:无论这个对象有多复杂,使用该对象的引用或是使用该对象本身,在语法格式上是一样的,在本质上我们都使用了内存中的同一块区域。可以理解成&a=a;即变量的大名和小名
例如MyClass myclass; Myclass& cc=myclass; myclass.a=20; //等价于cc.a=20 cc.a=60; //等价于myclass.a=60
4: :声明时必须初始化,既必须指明把引用绑定到什么对象上。大家知道指针在声明时可以先不初始化,引用不行。所以下列语句将无法通过编译:
例如 int a; int &x; 这样的编译是不行的,引用类型必须初始化,也就是“绑定”一个对象
5;取一个对象的地址和取这个对象的引用的地址,所得结果是一样的。 非常有特点的理解
6:用传递引用的方式给函数传递一个对象的引用时,只传递了该对象的地址,系统消耗较小。在函数体内访问 形参,实际是访问了这个作为实参的对象。