5 指標 引用的區別

2021-08-20 06:50:33 字數 921 閱讀 8226

函式傳值的三種方式:傳值、傳引用、傳指標

相同點:

都是位址的概念

,指標指向一塊記憶體,它的內容是所指記憶體的位址;引用是某塊記憶體的別名。

區別:

1. 指標是乙個實體

在棧空間有自己的記憶體空間

,而引用僅是個別名

,不佔記憶體空間;

2. 引用使用時無需解引用(*),指標需要解引用;

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

。引用「從一而終」

4. 引用沒有 const,指標有 const,const 的指標不可變;(int const &a沒有意義,但是const int &a是有意義的;int const &a指的是引用的值不可以改變,引用的值本身是不可以改變的,所以這樣修飾是無意義的)

5. 引用不能為空

必須且只能初始化一次

,指標可以為空;

指標需要做非空檢查

6. sizeof(引用) 得到的是引用所繫結的物件的大小,sizeof(指標)得到的是指標變數的位元組數

7. 指標和引用的自增(++)運算意義不一樣

,指標是位址++,引用是物件的值++。

聯絡:

1.引用在語言內部用指標實現(如何實現?);

2. 對一般應用而言,把引用理解為指標,不會犯嚴重語義錯誤。引用是操作受限了的指標(僅容許取內容操作)。

引用的一些規則如下:

(1)引用被建立的同時必須被初始化,而指標則可以在任何時候被初始化,最好定義時就初始化。

(2)不能有null 引用,引用必須與合法的儲存單元繫結;而指標則可以是null。

(3)一旦引用被初始化,就不能改變引用的關係,而指標可以隨時改變所指的物件。

09 11 08 指標與引用的區別

引用和指標 相同點 1.都是位址的概念 指標指向一塊記憶體,它的內容是所指記憶體的位址 引用是某塊記憶體的別名。區別 1.指標是乙個實體,而引用僅是個別名 2.引用使用時無需解引用 指標需要解引用 3.引用只能在定義時被初始化一次,之後不可變 指標可變 引用 從一而終 4.引用沒有 const,指標...

1 指標與引用的區別

指標 指標是位址傳遞,但其本質上是值傳遞,通常實參傳給形參時,被調函式的形參作為被調函式的區域性變數處理,即在棧中開闢了記憶體空間以存放由主調函式放進來的實參的值,從而成為了實參的乙個副本。所以進行指標傳遞時,作為實參的指標本身所存的位址值是不會變的,但指標所指位址中的內容則會根據函式的不同操作而改...

1 指標和引用的區別

1 什麼是指標?2 什麼是引用?引用 引用是乙個物件的別名,主要用於函式引數和返回值型別,符號x 表示x型別的引用。1 引用不可以為空,但指標可以為空。引用是物件的別名,引用為空 物件都不存在,怎麼可能有別名!所以定義乙個引用的時候,必須初始化。宣告指標是可以不指向任何物件,因此,使用指標之前必須做...