C++中的引用是一个别名,当建立引用时,程序用另一个变量或对象(目标)的名字初始化它。从此,引用作为目标的别名而使用,对引用的改动实际上就是对目标的改动。
引用不是值,不占存储空间。引用在申明时必须被初始化。
如果程序寻找引用的地址,它只能找到引用的目标的地址。
引用一旦初始化,它就维系在一定的目标上,再也不分开。任何对该引用的赋值,都是对引用所维系的目标赋值,而不是将引用维系到另一个目标上。(这与指针有本质区别)
#include<iostream.h>
void main()
{
int intone;
int & rInt =intone;
intOne=5;
intTwo=8;
cout<<"intOne:"<<intOne<<endl;
cout<<"rInt:"<<rInt<<endl;
rInt =7;
cout<<"intOne:"<<intOne<<endl;
cout<<"rInt:"<<rInt<<endl;
cout<<"&intOne:"<<&intOne<<endl;
cout<<"&intOne:"<<&intOne<<endl;
rInt=intTwo;
cout<<"intOne:"<<intOne<<endl;
cout<<"rInt:"<<rInt<<endl;
cout<<"intTwo:"<<intTwo<<endl;
}
输出结果为:intOne:5
rInt:5
intOne:7
rInt:7
&intOne:00F3:5300
&rInt:00F3:5300
intOne:8
rInt:8
intTwo:8
引用传递参数时,简单地传递变量而不是他们的地址。而事实上,传递的是它们的地址。引用传递的内存布局与指针相仿,只是操作完全不同。每当使用引用时,C++就去求该引用所含地址中的变量值。
可以参考<<C++程序设计教程>> 钱能 清华大学出版社