一、 函式返回值
1.如果返回值小於4byte 用暫存器eax帶回返回值
2.如果返回值大於4byte小於8btye,用兩個暫存器eax edx帶回返回值
3.如果返回值大於8byte,在呼叫前main函式中產生臨時量接受返回值
二、臨時量生成的三種情況
1.函式呼叫之前產生,目的是為了接受函式的返回值
2.函式的return語句處
3.函式呼叫之後
三、引用的條件
1.必須進行初始化
2.必須能取位址
內建型別產生的臨時量都是常量 通過eax edx帶回 不能修改
自定義型別產生的臨時量是變數 可以進行修改
四、函式傳參
1.傳值
函式呼叫過程會產生乙個臨時變數用形參的形式代替,
最終把實參得值傳給新分配的臨時變數,這種傳值避免了
函式惡意修改所傳的值;
2.傳位址
傳位址壞處就是不能控制該值被程式惡意修改
好處就是如果程式需要改變這個值 那麼就可以改變 無束縛
3.傳引用
傳引用並沒有引用新的變數 只是給已存在的變數起了乙個別名
編譯器不會為這個別名開闢記憶體空間 這個引用和引用的變數使用同一記憶體空間
五、普通型別作為返回值
//函式返回值為普通型別的返回值接收情況
int getint()
int main ()
int main()
int main()
指標和引用作為函式返回值
例子一 引用作為函式返回值 includeusing namespace std int f2 int a,int i int main int n f2 a,3 f2 a,3 14 相當於a 3 cout 例子二 指標作為函式返回值 includeusing namespace std 返回乙個指...
引用作為返回值 多型
1 引用作為返回值,必須遵守以下規則 1 不能返回區域性變數的引用。這條可以參照effective c 1 的item 31。主要原因是區域性變數會在函式返回後被銷毀,因此被返回的引用就成為了 無所指 的引用,程式會進入未知狀態。2 不能返回函式內部new分配的記憶體的引用。這條可以參照effect...
將引用作為函式返回值
要以引用返回函式值,則函式定義時必須遵循以下格式 型別識別符號 函式名 形參列表及型別說明 可見,以引用返回函式值,定義函式時需要在函式名前加 引用作為函式的返回值時,函式的返回值可以理解為函式返回了乙個變數 事實上,函式返回引用時,它返回的是乙個指向返回值的隱式指標 因此,值為引用的函式可以用作賦...