//ex1
#include
using
namespace
std;
const
string &shorterstring(const
string &str1, const
string &str2)
int main()
注:
1.return str1.size() <= str2.size() ? str1 : str2; 到底返回了什麼?
答:返回的是s1與s2中較短者的引用;
2.此處函式的返回值型別為常量引用,那麼是否可以改為string& 非常量引用?
答:不可以,因為形參str1,str2已經決定了返回值型別必須為常量引用;
3.由上例可以,主函式中的s3為s2的引用,即s2的別名;那麼是否可以通過改變s3來達到改變s2的目的?
答:不可以,因為s3為常量引用,但可以能過如下改變實現:
string &shorterstring(string &str1, string &str2)
C 返回引用型別
c 返回引用型別 a a 就生成了乙個固定位址的指標,並把指標帶給你 但a a 會生成乙個臨時物件變數,並把這個臨時變數給你 這樣就多了一步操作 當返回乙個變數時,會產生拷貝。當返回乙個引用時,不會發生拷貝,你可以將引用看作是乙個變數的別名,就是其他的名字,引用和被引用的變數其實是乙個東西,只是有了...
C 函式返回非引用型別與返回引用型別
函式的返回過程和引數傳遞過程是相對稱的兩個的過程。引數傳遞從呼叫函式向被呼叫函式傳遞,返回值從被呼叫函式向呼叫函式返回。有與傳遞方式的區別 拷貝副本與傳遞本身 函式形參可以分為引用形參和非引用形參 類似的,函式返回值也可以分為非引用型別返回值和引用型別返回值,二者的差異和引用形參和非引用形參型別。當...
C 返回引用型別 指標的引用
c 返回引用型別a a 就生成了乙個固定位址的指標,並把指標帶給你 但a a 會生成乙個臨時物件變數,並把這個臨時變數給你 這樣就多了一步操作 當返回乙個變數時,會產生拷貝。當返回乙個引用時,不會發生拷貝,你可以將引用看作是乙個變數的別名,就是其他的名字,引用和被引用的變數其實是乙個東西,只是有了兩...