C 基礎07 引用函式返回值 引用當左值

2021-07-09 10:39:46 字數 806 閱讀 4167

當函式返回值為引用時

若返回棧變數

不能成為其它引用的初始值

不能作為左值使用

若返回靜態變數或全域性變數

可以成為其他引用的初始值

即可作為右值使用,也可作為左值使用

int geta1()

//若返回棧變數 不能成為其他引用變數的初始值

// 返回a引用 就是返回a的本身 返回a的乙個副本 10

int& geta2()

int* geta3()

void main()

int& j2()

//若返回靜態變數 或者 全域性變數

// 可以成為其他引用的初始值

// 既可作右值使用 也可作左值使用

void main()

//返回乙個int變數的值 也就是11

int g()

//返回變數本身

int& g2()

int* g3()

void main()

//最主要看乙個記憶體空間是不是乙個有效的記憶體空間

當函式返回值是引用

同其他引用型別一樣,如果函式返回引用,則該引用僅是它所引物件的乙個別名。舉個例子來說明,假定某函式挑出兩個string 形參中較短的那個並返回其引用 函式的返回型別決定函式呼叫是否是左值。const string shorterstring const string s1,const string ...

c 引用返回值

函式返回值時,要生成乙個值的副本。而用引用返回值時,不生成值的副本。例如,下面的程式是有關引用返回的4種形式 ch9 6.cpp include float temp float fn1 float r float fn2 float r void main void main 見圖9 9說明。圖9...

c 引用返回值

引用作為函式的返回值時,函式的返回值能夠理解為函式返回了乙個變數 事實上,函式返回引用時,它返回的是乙個指向返回值的隱式指標 因此,值為引用的函式能夠用作賦值運算子的左運算元。另外,用引用返回乙個函式值的最大優點是。在記憶體中不產生被返回值的副本。include using namespace st...