引用其實就是給乙個存在的變數取乙個別名,就像給人取外號一樣。編譯器不會給引用變數開闢記憶體空間,它和引用的變數公用一快記憶體空間。
引用的規則是:型別& 引用變數名 = 引用實體;
如:
test()
輸出:0078f77c 0078f77c
引用也可以用來當作引數:
void swap(int& left, int& right)
int& testrefreturn(int& a)
用引用做引數的效率比傳值更高,因為引用不需要做拷貝實參的動作,它本身就是實參。
指標和引用的不同點:
引用在定義時必須初始化,指標沒有要求
引用在初始化時引用乙個實體後,就不能再引用其他實體,而指標可以在任何時候指向任何乙個同型別實
體沒有null引用,但有null指標
引用自加即引用的實體增加1,指標自加即指標向後偏移乙個型別的大小
有多級指標,但是沒有多級引用
訪問實體方式不同,指標需要顯式解引用,引用編譯器自己處理
引用比指標使用起來相對更安全
C 引用總結
乙個變數的乙個別名,乙個引用只屬於乙個變數。引用與其代表的變數共享同乙個儲存單元,與變數有著相同的位址 型別 引用名 變數名 在此起標識作用,並不代表取位址符 引用必須初始化。由於沒有單獨的儲存空間,引用只有宣告沒有定義。當 前為型別名時,必為引用宣告 int b a 當 單獨存在時 p a 為取位...
c 引用總結
引用做函式引數 struct teacher void printft teacher pt pt和t1的是兩個不同的變數 void printft3 teacher pt void main 引用的本質 struct teacer int main 1 引用在c 中的內部實現是乙個常指標type ...
C 引用總結
引用就相當於於起別名。語法 資料型別 別名 原名 includeusing namespace std int main 作用 函式傳參時,可以利用引用的技術讓形參修飾實參 優點 可以簡化指標修改實參 值傳遞,形參不會修飾實參。位址傳遞,形參會修飾實參。引用傳遞,形參會修飾實參。引用的語法更清楚簡單...