c learning 函式返回引用

2021-09-27 03:49:09 字數 913 閱讀 7860

1,當函式返回引用型別時,沒有複製返回值。相反,返回的是物件本身。比如:

const string &shorterstring(const string &s1,const string &s2)

呼叫函式和返回結果時,都沒有複製這些string物件。

2,返回引用,要求在函式的引數中,包含有以引用方式或指標方式存在的,需要被返回的引數。比如:

int& abc(int a, int b, int c, int& result)

這種形式也可改寫為:

int& abc(int a, int b, int c, int *result)

但是,如下的形式是不可以的:

int& abc(int a, int b, int c)

3,千萬不要返回區域性物件的引用。當函式執行完畢時,將釋放分配給區域性物件的儲存空間。此時,對區域性物件的引用就會指向不確定的記憶體。如:

const string &manip(const string &s)

string ret =s;

return ret;  //wrong:returning reference to a local object

比如:

返回時result已經銷毀,

所以當:

std::string source = readfile(filepath);

source指向的是不確定的記憶體!

c 函式返回引用

1 什麼是引用?引用就是變數的別名,操作乙個變數的引用也就相當於操作變數本身,這一點跟指標很類似,但是操作引用不用像操作指標一樣,利用取位址符號,很不方便。而操作引用的話,則跟操作普通變數一樣,所以c 之中更加鼓勵使用引用。2 c 函式為什麼要使用引用?c語言之中大量利用指標作為形參或者函式返回值,...

C 函式返回引用

首先需要明白 c 函式為什麼要返回引用?答 這樣就不用返回結果的副本。因為返回副本需要做賦值拷貝函式,浪費時間。這時候,實際上,返回是結果的副本,而不是結果本身。如果要返回本身,就返回引用就ok了。例1 const string manip2 const string s 此時,返回的不是ret本身...

c 函式返回引用

一,c 函式的返回分為以下幾種情況 1 主函式main的返回值 這裡提及一點,返回0表示程式執行成功。2 返回非引用型別 函式的返回值用於初始化在跳用函式出建立的臨時物件。用函式返回值初始化臨時物件與用實參初始化形參的方法是一樣 的。如果返回型別不是引用,在呼叫函式的地方會將函式返回值複製給臨時物件...