C 中引用和指標的區別

2021-05-25 14:12:24 字數 472 閱讀 2304

(1)引用是直接引用,指標是間接引用;

假如我們宣告並初始化變數a: int a=1;那麼記憶體中就肯定有乙個地方的值變為了1,而且以名字a來引用。如果這時候我們在定義乙個引用int &b=a;那麼這塊記憶體區域就多了乙個名字b,我們引用名字b同樣是引用名字a。因為引用只是為某一記憶體空間取乙個別名,所以引用並不占用記憶體空間。然後指標就會占用記憶體空間。在32位機上面,無論是是神馬指標,都是4個位元組,指標裡面存的是某個記憶體空間的位址。所以,當我們使用指標的時候,我們是通過找到指標裡面儲存的位址,接著根據位址尋到那片記憶體空間的。這是一種間接引用;

(2)引用不能變,指標可以變;

當然這不是絕對的,如果指標被加上了const修飾符之後,它也是不可以變的。正因為引用只是別名,所以在宣告它的時候必須要初始化,而且一旦初始化之後就再也不能更改了。這也算是一種放棄使用指標的代價。

當然以上只是很膚淺的理解,但是大致也對,關於引用的實現原理遠遠沒有這麼簡單,待我以後有時間才補上吧~~

c 中引用和指標的區別

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

C 中引用和指標的區別

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

C 中引用和指標的區別

當引用被建立時,它必須被初始化。而指標則可以在任何時候被初始化 一旦乙個引用被初始化為指向乙個物件,他就不能被改變為對另乙個物件的引用,而指標則可以在任何時候指向另乙個物件 不可能有null的引用,必須確保引用是和一塊合法的儲存單元關聯 指標和引用都是c 中的基本語法成分,他們既有聯絡,又有不同之處...