引用:不是新定义一个变量,而是给已存在的变量取别名,编译器不会为引用变量开辟内存空间,它和它引用的变量共用同一块内存空间。
类型& 引用变量名(对象名) = 引用实体;
引用的特性:
1.引用在定义时必须初始化。
2.一个变量可以有多个引用。
3.引用一旦引用一个实体,再不能引用其他实体。
4.引用类型必须和引用实体是同种类型。
解释:
1.引用在定义时必须初始化:引用是变量的别名,并不分配空间,所以没有初始化就没有指向的内存空间。
2.不解释。
3.引用一旦引用一个实体,不能再引用其他实体。如
int a = 10; int& b = a; //此时b和a等价,共用同一份空间,也就是cout<<b;的值为10.此时a = b int c =9; b = c; //此时并不是b变成了c 的引用,而是改变了b(a)的值。
常引用:
void TestConstRef()
{
const int a = 10;
//int& ra = a; // 该语句编译时会出错,a为常量
const int& ra = a;
// int& b = 10; // 该语句编译时会出错,b为常量
const int& b = 10;
double d = 12.34;
//int& rd = d; // 该语句编译时会出错,类型不同
const int& rd = d;
}