引用 1. 引用的概念
建立引用的作用是为变量另起一个名字,变量的引用通常被认为是变量的别名。
声明一个引用的格式如下:
类型 & 引用名 = 已定义的变量名;
例如:
int i=5;
int &j = i;
这里,声明了一个整数类型的引用j ,用整型变量i对它进行初始化,这时j就可看做是变量i的引用,即是变量i的别名。也就是说,变量i和引用j占用内存的同一位置。当i变化时,j也随之变化,反之亦然。
举例:
变量和引用的关系:
#include<iostream>
using namespace std;
int main()
{
int i;
int &j = i;
i = 30;
cout << "i=" << i << "j=" << j << "\n";
j = 80;
cout << "i=" << i << "j=" << j << "\n";
cout << "i的地址:" << &i << "\n";
cout << "j的地址:" << &j << "\n";
return 0;
}
运行结果:
i=30j=30
i=80j=80
i的地址:009CFD40 //地址会有所不同
j的地址:009CFD40
请按任意键继续. . .
说明:
(1) 对变量声明一个引用,编译系统不给它单独分配存储单元,i和j都代表同一变量单元。
(2)在声明一个引用时,必须立即对它进行初始化,即声明它代表哪一个变量。不能声明完成后再赋值。
(3) 为引用提供的初始值,可以是一个变量或另一个引用。
例如:
int i=5; //定义整型变量i
int &j1=i; //声明j1是整型变量i的引用(别名)
int &j2=j1; //声明j2是整型引用j1的引用(别名) 这样定义后,变量i有两个别名:j1和j2。
(4) 指针是通过地址间接访问某个变量,需要书写间接运算符“*”;
引用是通过别名直接访问某个变量。
每次使用引用时,可以不用书写间接运算符“*”,因而使用引用可以简化程序。
(5) 引用在初始化后不能再被重新声明为另一个变量的引用(别名)。
例如:
int i,k; //定义i和k是整型变量
int &j=i; //声明j是整型变量i的引用(别名)
j=&k //错误,企图重新声明j是整型变量k的引用(别名)
(6) 尽管引用运算符“&”与地址操作符“&”使用相同的符号,但是它们是不一样的。
引用运算符“&”仅在声明引用时使用。
其他场合使用的“&”都是地址操作符
例如:
int j=5;
int& i=j; //声明引用i,“&”为引用运算符
i=123; //使用引用i,不带引用运算符
int *pi=&i; // 在此,“&”为地址操作符
cout<<π // 在此,“&”为地址操作符
更多内容欢迎关注:phpstory