引用與指標

2021-09-26 21:48:17 字數 851 閱讀 9534

引用

引用就是物件的別名,一切對引用的操作,就是對原物件的操作。

引用經常存在於函式的引數和返回值當中。

在過載某些操作符時,我們需要引用,例如過載下標操作符.

vectorvec;

vec[2]=10;

//這就是對進行過載之後,可以對vec的下標為2的變數進行賦值操作

引數傳遞準則

如果我們想要提高效率,且不改變傳遞物件時,會使用常引用的方式傳遞,它僅僅需要把引用物件的位址壓棧而已;

如果我們採用傳值的方式傳遞物件,例如拷貝建構函式就需要傳值的方式,傳值方式要呼叫建構函式和析構函式,因為會在被調函式裡重新開闢記憶體,裡面儲存與物件相同的值,在呼叫完畢之後,析構該區域性物件。

指標是一種復合資料型別。還可以說到野指標,野指標產生原因,野指標危害,如何避免產生野指標,智慧型指標。

指標與引用的區別

指標的操作符是*和->,引用的操作符是.;

引用必須在建立時初始化,指標不需要;

引用一旦定義,就不能改變,指標不是,指標可以改變指向;

引用不能是空,必須與合法的儲存單元聯絡在一起,指標可以指向空。

指標是一種資料型別(指標是指向某種型別物件的復合資料型別),在64位作業系統中,指標佔8位元組,引用不是任何資料型別。

有指標為什麼要引用?

c++之父bjarne stroustrup曾說過,引入引用的目的主要是為了支援運算子過載;在過載某些操作符時,我們需要引用,例如過載下標操作符,過載賦值操作符,方便連續賦值。

此外,指標經常會帶來有嚴重錯誤,例如操作野指標,操作空指標,指標越界;引用不會出現這些問題,由於它必須初始化且不能改變指向,所以不會為空,也不會是野指標,所以它的安全性要比指標高。

指標與引用

摘自 高質量c 程式設計 指標與引用,在more effective c 的條款一有詳細講述,我給你轉過來 條款一 指標與引用的區別 指標與引用看上去完全不同 指標用操作符 和 引用使用操作符 但是它們似乎有相同的功能。指標與引用都是讓你間接引用其他物件。你如何決定在什麼時候使用指標,在什麼時候使用...

引用與指標

引用就是物件的另乙個名字,在實際的程式中,引用主要用作函式的形式引數。引用是一種復合型別,通過在變數名前新增 符號來定義。復合型別是指用其他型別定義的型別。在引用的情況下,每一種引用型別都 關聯到 某一其他型別。引用必須用與該引用同型別的物件初始化。當引用初始化後,只要該引用存在,它就保持繫結到初始...

指標與引用

include iostream using namespace std void testref int i 10 引用不可以為空,他是乙個物件的別名 int ref i ref cout i 00824f1e mov dword ptr i 1 把i的位址傳入eax 並把eax指標的位址傳給re...