回覆列表
  • 1 # Affgcff

    所謂引用就是為物件起一個別名。例如變數b = &a,b就是a的一個引用。對b的任何操作等同於對a的操作,也就是說,如果你改變了b的值,同時a的值也會發生改變。b就是a的另外一個名字,他們實質是同一個變數。就好比是同一個人,只不過穿著不同的衣服而已。至於引用的用處,給你舉一個簡單的例子,比如一個交換兩個值的函式swap(int a, int b),如果將兩個值帶進去,發生交換的只是形參a和b,因為函式結束的時候這兩個引數的生命週期結束了,換句話說,實參a和b的值並未發生交換。而如果swap(int &a,int &b)則不同,他的引數是a和b的引用,也就是說函式中的a和b就是你帶入的實參,當函式中的a和b發生變化時,被引用的值在同時也發生了變化,而不會受到函式宣告週期的影響。取地址則顧名思義,就是取得物件的地址,透過指標來操作物件,也可以達到引用的效果,它不是直接對物件進行操作,而是根據物件的地址。與引用不同的是,引用是不佔用儲存空間的,而如果用指標指向物件地址的時候會有自己的儲存空間。舉個簡單的例子,swap(int *a, int *b), *a和*b是指向實參的指標,即他們有實參的地址,而我們知道a和b的地址是沒有改變的,那麼根據他們的地址就可以操作他們的值,也就不用考慮函式生命週期了。舉的例子比較簡單,實際中的應用比這個複雜的多。只要能理解就好。

  • 中秋節和大豐收的關聯?
  • 如何正確理解《感謝貧窮》這篇文章的標題含義?