當函式返回值為引用時
若返回棧變數
不能成為其它引用的初始值
不能作為左值使用
若返回靜態變數或全域性變數
可以成為其他引用的初始值
即可作為右值使用,也可作為左值使用
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...