c++返回引用型別
a& a() 就生成了乙個固定位址的指標,並把指標帶給你
但a a() 會生成乙個臨時物件變數,並把這個臨時變數給你
這樣就多了一步操作
當返回乙個變數時,會產生拷貝。當返回乙個引用時,不會發生拷貝,你可以將引用看作是乙個變數的別名,就是其他的名字,引用和被引用的變數其實是乙個東西,只是有了兩個名字而已。
問題的關鍵是,當你想要返回乙個引用而不是乙個拷貝時,你要確保這個引用的有效性,比如:
int & fun()
這樣是不行的,因為a會在fun退出時被銷毀,這時返回的a的引用是無效的。
這種情況下,如果fun的返回型別不是int & 而是int就沒有問題了。
指標的引用
getnearestfontintwips(cfont *&afont, const tfontspec &afontspec);
第乙個引數afont是乙個指標, 前面加上*&表示指標的引用, 其實可以如下看待這個方式(cfont*) &afont, 這就一目了然了.
C 函式返回非引用型別與返回引用型別
函式的返回過程和引數傳遞過程是相對稱的兩個的過程。引數傳遞從呼叫函式向被呼叫函式傳遞,返回值從被呼叫函式向呼叫函式返回。有與傳遞方式的區別 拷貝副本與傳遞本身 函式形參可以分為引用形參和非引用形參 類似的,函式返回值也可以分為非引用型別返回值和引用型別返回值,二者的差異和引用形參和非引用形參型別。當...
C 返回引用型別(一)
ex1 include using namespace std const string shorterstring const string str1,const string str2 int main 注 1.return str1.size str2.size str1 str2 到底返回了...
C 返回引用型別 指標的引用
c 返回引用型別a a 就生成了乙個固定位址的指標,並把指標帶給你 但a a 會生成乙個臨時物件變數,並把這個臨時變數給你 這樣就多了一步操作 當返回乙個變數時,會產生拷貝。當返回乙個引用時,不會發生拷貝,你可以將引用看作是乙個變數的別名,就是其他的名字,引用和被引用的變數其實是乙個東西,只是有了兩...