学习是一种信仰。
分类: C/C++
2014-01-23 08:52:07
1、在C++ 中,reference在很多方面与指针(pointer)具有同样的能力。
2、Pointer 和reference的最大不同是:pointer必须使用一个星号操作符“*”来去引用(dereference)而reference不需要任何操作符来去引用。
例如:int i = 0;
int* pi = &i;//定义pi为i的指针
int& ri = i;//定义ri为i的引用
*pi = 1;//指针需要用“*”去引用,把i的值变为1
ri = 2;//引用不用去引用,直接把i的值变为2
3、引用常用于函数参数或返回值,特别是在运算符重载时;比指针易读;
4、References vs. const pointers
C++ 中不允许定义“const reference”, 因为一个reference天生就是const。也就是说,一旦将一个reference绑定到一个对象,就无法再将它重新绑定到另一个不同的对象。在声明一个reference之后没有写法可以将它重新绑定到另外一个对象。