(1)引用在建立的同時必須初始化,即引用到乙個有效的物件;而指標在定義的時候不必初始化,可以在定義後面的任何地方重新賦值.
(2)不存在null引用,引用必須與合法的儲存單元關聯;而指標則可以是null.
(3)引用一旦被初始化為指向乙個物件,它就不能被改變不另乙個物件的引用;而指標在任何時候都可以改變為指向另乙個物件.給引用賦值並不是改變它和原始物件的繫結關係.
(4)引用的建立和銷毀並不會呼叫類的拷貝建構函式
(5)在語言層面,引用的用法和物件一樣;在二進位制層面,引用一般都是通過指標來實現的,只不過編譯器幫我們完成了轉換.
總的來說:引用既具有指標的效率,又具有變數使用的方便性和直觀性
6) 引用,雖然有位址的意思,但是它就是變數的乙個別名。是不能進行計算的
7) 引用不能動態分配記憶體, 指標可以.
8) 引用使用時無需解引用(*),指標需要解引用
9) 「sizeof 引用」得到的是所指向的變數(物件)的大小,而「sizeof 指標」得到的是指標本身(所指向的變數或物件的位址)的大小
在以下情況下你應該使用指標,一是你考慮到存在不指向任何物件的可能(在這種情況下,你能夠設定指標為空),二是你需要能夠在不同的時刻指向不同的 物件(在這種情況下,你能改變指標的指向)。如果總是指向乙個物件並且一旦指向乙個物件後就不會改變指向,那麼你應該使用引用。
還有一種情況,就是當你過載某個操作符時,你應該使用引用。最普通的例子是操作符。這個操作符典型的用法是返回乙個目標物件,其能被賦值。
引用與指標比較
引用 引用不是定義乙個新的變數,而是給乙個已經定義的變數重新起乙個別名。定義的格式為 型別 引用變數名 已經定義過的變數名 例如 int m int n m 此處n為m的別名 引用的特點 1.乙個變數可以有多個別名 2.引用必須初始化 3.引用只能在初始化的時候引用一次,不能改變為再引用其他的變數 ...
引用與指標的比較
指標與引用的比較 int m int n m n是m的乙個引用,m是被引用物。n就相當於m的乙個別名,對n的操作就相當於對m的操作,n既不是m的拷貝,也不是指向m的指標,n就是m它自己。c 中值傳遞,指標傳遞,引用傳遞的對比 includeusing namespace std void fun1 ...
C 引用與指標的比較
c 語言中,函式的引數和返回值的傳遞方式有三種 值傳遞 指標傳遞和引用傳遞。引用與指標的比較 1 引用被建立的同時必須被初始化 指標則可以在任何時候被初始化 2 不能有null引用,引用必須與合法的儲存單元關聯 指標則可以是null 3 一旦引用被初始化,就不能改變引用的關係 指標則可以隨時改變所指...