c 中引用和指標的區別

2021-09-08 20:20:23 字數 416 閱讀 6216

簡單的說兩者的區別在於指標是乙個變數,其值是某個變數的位址,所以指標可以間接改變它所存位址處的變數的值。而引用相當 於某個變數的別名,它的實現可以理解為乙個常量指標,這個指標初始化的時候就固定的指向乙個物件,int &a = b就類似於int * const c = &b, 其中a=*c,當然實際不一定是這樣的,只是方便理解。

畢竟引用是一種型別,當然附加了一些型別定義。簡單總結如下:

(1)都和位址有關,指標更加自由,引用更加安全。

(2)指標是乙個變數,引用只是變數的乙個別名(可以和常量指標聯想一下)。

(3)指標只能被初始化一次,而指標是變數可以隨意改變。

(4)sizeof 操作的結果不一樣,引用是所指向變數的大小,指標為4位元組。

C 中引用和指標的區別

1 引用是直接引用,指標是間接引用 假如我們宣告並初始化變數a int a 1 那麼記憶體中就肯定有乙個地方的值變為了1,而且以名字a來引用。如果這時候我們在定義乙個引用int b a 那麼這塊記憶體區域就多了乙個名字b,我們引用名字b同樣是引用名字a。因為引用只是為某一記憶體空間取乙個別名,所以引...

c 中引用和指標的區別

c 中引用和指標的區別 1.引用沒有自身的記憶體空間,指標有 引用是已經存在的變數的別名,他所指向的記憶體即原來變數的記憶體。指標有自己的記憶體,在32位作業系統下,為4個位元組 也就是說,sizeof 引用 的值為引用所指變數記憶體空間大小,sizeof 指標 等於4 2.引用必須初始化,指標不用...

C 中引用和指標的區別

下面用通俗易懂的話來概述一下 其次,引用不可以改變指向,對乙個物件 至死不渝 但是指標可以改變指向,而指向其它物件。說明 雖然引用不可以改變指向,但是可以改變初始化物件的內容。例如就 操作而言,對引用的操作直接反應到所指向的物件,而不是改變指向 而對指標的操作,會使指標指向下乙個物件,而不是改變所指...