1. 程式人生 > >指標和引用的區別及其使用意義

指標和引用的區別及其使用意義

1、指標和引用的區別

     (1)指標是一個實體,他在棧中有自己使用的空間,但是引用沒有,引用僅是個別名;

     (2)引用必須初始化,指標不用,但是最好初始化;

     (3)引用只能在定義時被初始化一次,之後不可變;指標可變;

     (4)引用沒有const,指標有const,const的指標不可變;

     (5)指標和地址運用自增(++)不同,引用是值進行自增,而指標是地址進行自增;

     (6)“sizeof 引用”得到的是所指向的變數(物件)的大小,而“sizeof 指標”得到的是指標本身的大小;

     (7)引用是型別安全的,而指標不是 (引用比指標多了型別檢查)

     (8)它本身不是一種資料型別,因此引用本身不佔儲存單元,系統也不給引用分配儲存單元,不能建立陣列的引用

2、引用意義用法(指標就不贅述了)

        int a = 2;

        int  &b = a;(這就是C語言規定“引用”的方式,變數b引用了變數a)

        結果如下:

        (1)引用變數b的值 = 變數a的值 = 2;

        (2)引用變數b沒有分配記憶體空間;

        (3)引用變數b地址&b = 變數a的地址&a;

        (4)int &b,本身不是一種資料型別,0位元組,它只是一個別名

        (5)int b是定義的一種資料型別,有記憶體空間4位元組

3、引用作形參

          int  &b = a;

          void  func(int  &b)

          (1)使用時和指標一樣,func(b);  b被定義成引用變數b,形參要求一個引用變數,所有填入b即可