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;
}