1.非空
在任何情況下都不能使用指向空值的引用。乙個引用必須總是指向某個物件。所以如果你使用乙個變數並讓它指向乙個物件,但是該變數在某些時候也可能不指向任何物件,這時應該把變數宣告為指標,因為這樣就可以賦空值給該變數。相反,如果變數肯定指向乙個物件,比如你的設計不允許變數為空,這時就可以把變數宣告為引用。不存在指向空值的引用這個事實意味著使用引用的**效率比使用指標要高。
2.合法性
在使用引用之前不需要測試它的合法性,而在使用指標之前最好先測試,避免它指向null。
3.可修改
指標可以被重新賦值以指向另乙個不同的物件,但是引用則總是指向在初始化時被指定的物件,以後不能改變,但是指定的物件其內容可以改變。
4.應用
在以下情況下應該使用指標:一是考慮到存在不指向任何物件的可能(在這種情況下,能夠設定指標為空),二是需要能夠在不同的時刻指向不同的物件(在這種情況下,可以改變指標的指向)。如果總是指向乙個物件並且一旦指向乙個物件後就不會改變指向,那麼應該使用引用。
指標和引用的差別
指標和引用的區別 主要有以下四個方面 1 非空區別 在任何情況下,都不能使用指向空值的引用。乙個引用必須總是指向某些物件。因此如果你使用一 個變數並讓它指向乙個物件,但是該變數在某些時候也可能不指向任何物件,這時就應該把變數宣告為指標,因為這樣才可以賦空值給該變數。相反,如果變數肯定指向乙個物件,即...
指標和引用的差別
1 非空區別。在任何情況下都不能使用指向空值的引用。乙個引用必須總是指向某些物件。因此如果你使用乙個變數並讓它指向乙個物件,但是該變數在某些時候也可能不指向任何物件,這時你應該把變數宣告為指標,因為這樣你可以賦空值給該變數。相反,如果變數肯定指向乙個物件,例如你的設計不允許變數為空,這是你就可以把變...
引用和指標的差別,陣列和指標的差別
一 引用和指標的差別 1 引用並不是物件,它僅僅是為乙個已存在的物件所起的另外乙個名字。必須初始化,並且無法改變它繫結的物件,之後每次使用這個引用都是訪問最初繫結的那個物件。2 指標本身是物件,能夠不用初始化,能夠改變指標指向的物件 二 指標與陣列的差別 指標陣列 儲存資料的位址 儲存資料 間接訪問...