我已經創建了一個C++程序,以測試通過引用爲函數傳遞參數的功能。C++ - 在返回int的函數中通過引用傳遞參數
#include <iostream>
using namespace std;
int f(int &b) {
b = b + 1;
cout << b << endl;
return b;
}
int main() {
int t = 10;
cout << f(t) << " " << t << endl;
//cout << f(&t) << " " << t << endl;
system("PAUSE");
return 0;
}
可否請你向我解釋爲什麼這一計劃將不f
功能執行後影響的t
價值?傳入的b
參數是引用,所以我認爲它的值會在程序執行後發生改變,因爲我正在使用主函數的實際變量,而不是它的副本。在這種情況下,我希望它是11,但它不受程序執行的影響。
這是怎麼發生的?
是的,但爲什麼它不會增加?是不是通過引用傳遞?它應該在'main'函數中被修改嗎? – Simon 2012-02-29 16:48:48
這是,只是你沒有得到你所期望的訂單,所有的產出在一條線上。將它拆分爲兩個保證事情按照您希望的順序發生。 – BoBTFish 2012-02-29 16:50:31
@Simon:不,它會增加't'。發生的事情是獲取**打印**的值是函數調用之前的值。看到我更新的答案。 – NPE 2012-02-29 16:50:58