天天看點

c++的引用篇+指針(一)

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

繼續閱讀