1、在C++中,变量的引用就是变量的别名。
2、int a;int &b=a;(b就是对a的引用)“&”是引用声明符号,此处并不代表地址。
3、对变量的引用,并不另外开辟内存单元,b和a都是一个内存单元。
4、在声明一个引用时,必须对其初始化(但是作为函数中的参数时除外)。
5、引用具有专一性,不能对一个引用变量初始化两次。(错误:int a1,a2;int &b=a1;int &b=a2;)。
6、引用具有相连性,如果a的值变化了,则引用变量的值也发生了变化,因为他们具有同一个内存地址。
7、变量引用时,数据类型必须相同,使用const除外。
8、作用:
a)将变量名作为实参,以便于扩充函数的传递功能;
b) 传送变量的指针;
c)传送变量的别名;
/*
测试变量的引用和指针的应用
*/
#include <iostream>
using namespace std;
int main()
{
int a=3;
int &b=a; //b不是地址,为a的引用(别名)[建立引用时必须初始化对象(形参除外),必须声明数据类型];
cout<<"b="<<b<<endl; //输出b的值为3;
int *p=&b;
cout<<"p="<<p<<endl; //输出的p为内存中的地址0x69fee4;
cout<<"*p="<<*p<<endl; //*p的值为3;
int *pp=&a;
cout<<"*pp="<<*pp<<endl;
cout<<"pp="<<pp<<endl;
cout<<"**********************************************"<<endl;
int i=5;
int *ppp=&i;
int * &pt=ppp; //表示一个 int *类型的对象对a的引用
cout<<"pt="<<pt<<endl;
cout<<"&pt="<<&pt<<endl;
cout<<"*pt="<<*pt<<endl;
cout<<"* &pt="<<* &pt<<endl;
return 0;
}