詳解c 指標和引用的區別與聯絡

2021-08-22 19:40:26 字數 959 閱讀 4736

★ 相同點:

1. 都是位址的概念;

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

★ 區別:

1. 指標是乙個實體,而引用僅是個別名;

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

3. 引用只能在定義時被初始化一次,之後不可變;指標可變;引用「從一而終」 ^_^

4. 引用沒有 const,這是因為引用本身的指向就是不可改變的,所以不需要const來修飾;但是引用的物件可以是常量(const int & a)指標有 const,const 的指標指向不可變;

5. 引用不能為空,指標可以為空;

6. 「sizeof 引用」得到的是所指向的變數(物件)的大小,而「sizeof 指標」得到的是指標本身的大小=4;

7. 指標和引用的自增(++)運算意義不一樣;乙個是所指向的記憶體位址往後移動一位,乙個是引用的物件+1;

★聯絡

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

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

引用的一些規則如下:

(1)引用被建立的同時必須被初始化(指標則可以在任何時候被初始化)。

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

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

實際上「引用」可以做的任何事情「指標」也都能夠做,為什麼還要「引用」 這東西?

答案是:「用適當的工具做恰如其分的工作」。

指標能夠毫無約束地操作記憶體中的如何東西,儘管指標功能強大,但是非常危險。

就象一把刀,它可以用來砍樹、裁紙、修指甲、理髮等等,誰敢這樣用?

C 指標和引用的區別與聯絡

標籤 c語言 c 指標引用 2016 08 13 11 05 79人閱讀收藏 舉報 c c 8 指標和引用在c 中很常用,但是對於它們之間的區別很多初學者都不是太熟悉,下面來談談他們2者之間的區別和用法。1.指標和引用的定義和性質區別 1 指標 指標是乙個變數,只不過這個變數儲存的是乙個位址,指向記...

指標和引用的聯絡與區別

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

指標和引用的聯絡與區別

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