cly

博客园 首页 新随笔 联系 订阅 管理

引用就是变量的别名,对引用的所有操作,都是对其原变量的操作
对变量声明一个引用,并不另外开辟内存单元,引用及原变量都代表同一变量单元
声明一个引用时,必须同时使之初始化,即声明它代表哪一个变量
int a;
int &b = a;//只是声明它和原有变量之间的关系,并不分配内存单元

声明一个变量的引用之后,在运行期间,该引用一直与其代表的变量相联系,不能再作为其他变量的引用
如下:
int a1,a2;
int &b = a1;
int &b = a2;//不对,又企图使b成为变量a2的引用

引用并不是一种独立的数据类型,它必须与某种类型的数据相联系,必须指定它代表哪个变量,对其进行初始化
引用与其所代表的变量共享同一内存单元
引用在初始化后不能再被重新声明为另一个变量的别名。
对引用的初始化,可以用一个变量名,也可以用另一个引用。

实际上,在C++中很少使用独立变量的引用

引用的作用:将引用作为函数参数,不再重新分配内存空间

可以建立指针变量的引用;
int a;
int *p = &a;
int* &pt = p;

可以用常量或表达式对引用进行初始化,但此时必须用const作声明
int i = 5;
const int &a = i + 3;

const常引用

常引用const是指向常对象的引用。

常引用可以初始化为不同类型的对象或者右值

int i = 42;
// legal for const references only
const int &r = 42;
const int &r2 = r + i;

double dval = 3.14;
const int &ri = dval;

而非常引用只能初始化为同类型的对象。const 引用则可以绑定到不同但相关的类型的对象或绑定到右值。

posted on 2013-06-07 16:59  戒色  阅读(360)  评论(0编辑  收藏  举报