我有一個引用問題。 考慮以下代碼:作爲函數參數的引用?
void pseudo_increase(int a){a++;}
int main(){
int a = 0;
//..
pseudo_increase(a);
//..
}
這裏,變量a
的價值不會隨着克隆或它的複製品被傳遞,而不是變量本身。
現在讓我們考慮的另外一個例子:
void true_increase(int& a){a++;}
int main(){
int a = 0;
//..
true_increase(a);
//..
}
這是說的a
值將增加 - 但爲什麼呢?
當true_increase(a)
被調用時,a
的副本將被傳遞。這將是一個不同的變量。因此&a
將與a
的真實地址不同。那麼a
的價值如何增加?
糾正我錯在哪裏。
您應該爲函數參數和傳遞給它的變量使用不同的標識符,這樣您就不會再陷入困惑。 – AusCBloke
按引用傳遞不會創建副本。它是對同一個變量的引用。 – jweyrich
我建議您首先了解指針,然後介紹如何引用可以減少未初始化對象和無效指針等的痛苦。選擇您最喜愛的C/C++書籍! – sarat