引用與指針的區別
常常有人問引用與指針的區別,可能是指針和引用在功能上的相似,而是他們混淆這兩個概念,
現在總結以下二者的區別,希望大家能徹底弄清這兩個概念根本性的差別
步驟/方法
(01)引用,一個變量的別名,爲什麼引入別名呢?原因是我們想定義一個變量,他共享另一個變量的內存空間,使用別名無疑是一個好的選擇。變量是什麼?是一個內存空間的名字,如果我們給這個內存空間在起另外一個名字,那就是能夠共享這個內存了,引用(別名)的由此而來。指針,指向另一個內存空間的變量,我們可以透過它來索引另一個內存空間的內容,本身有自己的內存空間。
(02)二者區別:引用訪問一個變量是直接訪問,而指針是間接訪問。引用是一個變量的別名,本身不單獨分配自己的內存空間,而指針有自己的內存空間。引用在開始的時候就綁定到了一個內存空間(開始必須賦初值),所以他只能是這個內存空間的名字,而不能改成其他的,當然可以改變這個內存空間的值.例如int i = 3,j = 4;int &x = i;//成爲i的別名x = j;//不能否認x仍然引用i,並沒有成爲j的別名,只是修改了x和j共享的內存空間的值.這點與指針不同,指針在任何時刻都可以改變自己的指向
(03)你無法讓引用與其指示物分離。和指針不同,一旦引用和對象綁定,它無法再被重新指向其他對象。引用本身不是一個對象(它沒有標識;當試圖獲得引用的地址時,你將的到它的指示物的地址;記住:引用就是它的指示物 )。從某種意義上來說,引用類似 int* const p 這樣的const指針(並非如 const int* p這樣的指向常量的指針)。不管有多麼類似,請不要混淆引用和指針;它們完全不同。何時該使用引用, 何時該使用指針?儘可能使用引用,不得已時使用指針。
(04)當你不需要“重新指向(reseating)”時,引用一般優先於指針被選用。這通常意味着引用用於類的公有接口時更有用。引用出現的典型場合是對象的表面,而指針用於對象內部。上述的例外情況是函數的參數或返回值需要一個“臨界”的引用時。這時通常最好返回/獲取一個指針,並使用 NULL指針來完成這個特殊的使命。(引用應該總是對象的別名,而不是被解除引用的 NULL 指針)。注意:由於在調用者的代碼處,無法提供清晰的的引用語義,所以傳統的 C 程序員有時並不喜歡引用。然而,當有了一些 C++經驗後,你會很快認識到這是資訊隱藏的一種形式,它是有益的而不是有害的。就如同,程序員應該針對要解決的問題寫代碼,而不是機器本身。
-
Excel規劃求解:[3]解簡單的線性規劃應用題
Excel的規劃求解工具有着很強大的功能,可以幫助我們解決線性規劃問題,運籌學方面等實際問題。本系列將以Excel2010爲例詳細的介紹規劃求解的在各方面的應用。上一篇講解了高中數學所涉及到的簡單的線性規劃如何使用“規劃求解”功能進行求解。本篇將開始使用“規...
-
桌面圖標有藍底該怎麼解決
有時我們電腦開機後發現自己的的桌面圖標有藍底了,嚴重影響到自己的視覺效果。下來小藥就告訴大家常用的三種方法。操作方法(01)首先我們鼠標右鍵單擊我的電腦,選擇屬性選項,點擊進去後出現如圖所示。我們選擇進階大選項裏的性能裏的設定,點擊進入。(02)現在出現下圖所...
-
PS CC 2017 安裝和破解 win10版
嘗試過很多個PS版本,還是覺得2017版的最好用,響應速度更快P圖更開心永久版你值得擁有!!操作方法(01)首先你要安裝PS2017軟件如果在網上找不到,可以聯繫小編哦。安裝時,按提示進行操作即可,需要一定的時間。(02)將下載下來的破解檔案解壓雙擊開啟紅框的程序(這個程序會自動...
-
怎麼給PPT中插入素材【有圖有文】
我們在製作PPT的時候,免不了需要插入一些素材來配合文字。現在就分享給大家如何在PPT中插入各式各樣的素材操作方法(01)首先開啟“新建的PPT”(02)接着輸入主題和標題後,點擊“新建幻燈片”(03)其次在右側點擊“素材”(04)可以直接搜尋需要的素材,也可以選擇需要的素材類...