C++中的引用

来源:互联网 发布:相宜本草红景天 知乎 编辑:程序博客网 时间:2024/05/29 06:58
 

引用就是某一变量(目标)的一个别名,对引用的操作与对变量直接操作完全一样,其声明方法:类型标识符& 引用名=目标变量名。如:int a; int& ra=a;

说明

1、&在此不是求地址运算,而是起标识作用(即类型标识符)指明了目标变量的类型;

2、声明引用时,必须同时对其进行初始化,而且引用的初始化应是一个左值(是一个对象,可以取到它的地址);但是如果对一个const T&的初始化不必是一个左值,甚至不必是T类型的。

如:

int a;

int& ra=a; //正确,已初始化

int& ra; //错误,没有初始化

int& ra=2;//错误,要求左值

const int& ra=2;//正确,对于const T&的不一定必须是左值

3、引用声明完毕,相当于目标名有两个名称即目标名和引用名,且不能把该引用名作为其他变量的名字。而且声明一个引用并不是重新定义了一个变量,他只表示该引用是目标变量名的一个别名,故引用本身不是一种数据类型、不占存储单位、系统也不会给引用分配存储单元,因此对引用求地址就是对目标变量求地址(&ra与&a相等),对饮用进行操作运算就是对目标变量进行操作运算(ra++与a++结果相同)。

4、可以利用引用描述一个函数,以使该函数能够改变传递来的变量的值,如:

void change(int& aa) { aa++; }

void f()

{

int x=1;

change(x); //x=2;

}

原创粉丝点击