我已经创建了一个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