91精品人妻系列动画无码 - 国产精品夜间视频香蕉 - 91丝袜人妻一区二区三区 - 久久伊伊香蕉精品网站

信盈達(dá)—您身邊的嵌入式&人工智能專家
全國(guó)免費(fèi)咨詢熱線:400-8788-909

正確認(rèn)識(shí)和使用指針和引用

時(shí)間:2018-10-14 00:00:00 來源:信盈達(dá) 作者:信盈達(dá)

引用:一個(gè)變量的別名,為什么引入別名呢?原因是我們想定義一個(gè)變量,使他共享另一個(gè)變量的內(nèi)存空間,使用別名無(wú)疑是一個(gè)好的選擇。變量是什么?是一個(gè)內(nèi)存空間的名字,如果我們給這個(gè)內(nèi)存空間在起另外一個(gè)名字,那就是能夠共享這個(gè)內(nèi)存了,引用(別名)的由此而來。


指針:指向另一個(gè)內(nèi)存空間的變量,我們可以通過它來索引另一個(gè)內(nèi)存空間的內(nèi)容,本身有自己的內(nèi)存空間。


下面我們從現(xiàn)象、內(nèi)存分配、編譯上看他們有什么異同。


1、從現(xiàn)象上看:指針在運(yùn)行時(shí)可以改變其所指向的值,而引用一旦和某個(gè)對(duì)象綁定后就不再改變。
2、從內(nèi)存分配上看:程序?yàn)橹羔樧兞糠峙鋬?nèi)存區(qū)域,而引用不分配內(nèi)存區(qū)域。
3、從編譯上看:程序在編譯時(shí)分別將指針和引用添加到符號(hào)表上,符號(hào)表上記錄的是變量名及變量所對(duì)應(yīng)地址。指針變量在符號(hào)表上對(duì)應(yīng)的地址值為指針變量的地址值,而引用在符號(hào)表上對(duì)應(yīng)的地址值為引用對(duì)象的地址值。符號(hào)表生成后就不會(huì)再改,因此指針可以改變指向的對(duì)象(指針變量中的值可以改),而引用對(duì)象不能改。


那么,小編也為大家整理除了兩者之間的不同:

(1)引用訪問一個(gè)變量是直接訪問,而指針是間接訪問。

(2)引用是一個(gè)變量的別名,本身不單獨(dú)分配自己的內(nèi)存空間,而指針有自己的內(nèi)存空間,指針是一個(gè)實(shí)體,而引用不是。
(3)引用在開始的時(shí)候就綁定到了一個(gè)內(nèi)存空間(開始必須賦初值),所以他只能是這個(gè)內(nèi)存空間的名字,而不能改成其他的,當(dāng)然可以改變這個(gè)內(nèi)存空間的值。

例如 

          int i = 3,j = 4;

          int &x = i; //成為i的別名 

          x = j; //不能否認(rèn)x仍然引用i,并沒有成為j的別名,只是修改了x和i共享的內(nèi)存空間的值為4