1、從現象上看:指標在執行時可以改變其所指向的值,而引用一旦和某個物件繫結後就不再改變。
2、從記憶體分配上看:程式為指標變數分配記憶體區域,而引用不分配記憶體區域。
3、從編譯上看:程式在編譯時分別將指標和引用新增到符號表上,符號表上記錄的是變數名及變數所對應位址。指標變數在符號表上對應的位址值為指標變數的位址值,而引用在符號表上對應的位址值為引用物件的位址值。符號表生成後就不會再改,因此指標可以改變指向的物件(指標變數中的值可以改),而引用物件不能改。
引用:乙個變數的別名,為什麼引入別名呢?原因是我們想定義乙個變數,他共享另乙個變數的記憶體空間,使用別名無疑是乙個好的選擇。變數是什麼?是乙個記憶體空間的名字,如果我們給這個記憶體空間在起另外乙個名字,那就是能夠共享這個記憶體了,引用(別名)的由此而來。
指標:指向另乙個記憶體空間的變數,我們可以通過它來索引另乙個記憶體空間的內容,本身有自己的記憶體空間。
C 中引用與指標的區別
指標和引用都是 c 中的基本語法成份,它們既有聯絡,也有不同之處。下面給出幾段 例項加以說明 include include using namespace std 使用指標交換資料 使用引用改變資料 引用作為函式引數進行傳遞時,實質上傳遞的是實參本身,即傳遞進來的不是實參的乙個拷貝,因此對 形參的...
C 中引用與指標的區別
一 引用 何為引用呢?其實概念很簡單,就是乙個變數的別名,操作這個別名,如同操作原物件 變數 實現的效果是一樣的!舉個簡單又能說明問題的例子,就像乙個人的 小名一樣。他既可以叫張強,亦可以稱呼其小強。那如何宣告引用呢?舉個例子 int a 30 int b a 這個符號在這裡的意思就是取乙個變數引用...
C 中引用與指標的區別
1 當引用被建立時,它必須被初始化。而指標則可以在任何時候被初始化。2 一旦乙個引用被初始化為指向乙個物件,它就不能被改變為對另乙個物件的引用。而指標則可以在任何時候指向另乙個物件。3 不可能有null引用。必須確保引用是和一塊合法的儲存單元關聯。進一步解析 指標和引用都是 c 中的基本語法成份,它...