引用(reference)就是对象的另一个名字。在实际程序中,引用主要用作函数的形式参数。
引用是一种复合类型(compoun type),通过在变量名的前添加“&”符号来定义。复合类型是指用其他类型定义的类型。在引用的情况下,没一种引用类型都“关联到”某一其他类型。不能定义引用类型的引用,但可以定义任何其他类型的引用。
引用必须用与该引用类型的对象初始化:
int a = 1024;
int &b = a; //ok:b refers to a
int &c; //error: a reference must be initialized
int &d = 10; //error: initalizer must be an object
引用是别名
因为引用只是它绑定的对象的另一个名字,作用在引用上的所有操作事实上都是作用在该引用绑定的对象上:
a += 2;
将 b 指向的对象 a 加 2。类似地,
int ii = b;
把和 a 相关联的值赋给ii。
以上是书中所描述的一部分,如果还是不明白的话,看我下面举的例子就很容易明白了。
main.cpp文件 注意:是C++源文件的后缀了
#include
void sort(int &n, int &m)
{
int temp;
if(n < m)
{
temp = n;
n = m;
m = temp;
}
}
int main()
{
int a,b;
int &a1 = a, &b1 = b;//a1是a的引用,b1是b的引用
scanf("%d %d",&a,&b);
printf("a = %d, b = %d",a ,b);
a1 = 2; b1 = 3;//此时,a的值变成2,b的值变成3了
sort(a1, b1);//参数是引用,执行这条语句之后,a的值是3,b的值是2
printf("a = %d, b = %d",a ,b);
return 0;
}
如果这样还不能明白的话,应该是小弟表达能力的问题了。