#include <iostream>
using namespace std;
void f(int& p)
{
p += 2;
}
int main()
{
int x = 10;
f(x);
int y = x + 1;
f(y);
cout << "x is " << x << endl;
cout << "y is " << y << endl;
system("PAUSE");
return 0;
}
现在答案是x
为12,y
为15。
我有点明白,x
可能是12。要解释我是否做对了就是
void f (int &p)
{
p += 2;
}
和int x = 10
所以10 += 2
为12,所以x
为12。
但我不太明白为什么y
是15。
是因为我使用x
作为int y = x + 1
,因此12 + 1
为13,然后13 += 2
为15?
答案 0 :(得分:0)
是因为我使用
x
作为int y = x + 1
,因此12 + 1
为13,然后13 += 2
为15?
是。 f
是一个函数,它通过引用获取整数值 并将其递增2
。函数调用后,整数将永久更改。
int x = 10;
// `x` is 10.
f(x);
// `x` is now 12.
int y = x + 1;
// `y` is 13.
f(y);
// `y` is now 15.
答案 1 :(得分:0)
f()
内的值已更改,因为它们是通过引用发送 - void f(int& p)
。
所以:
int x = 10;
f(x); // x is 12 after the call
int y = x + 1; // y = 13
f(y); // y = (12+1) + 2 = 15 after the call
更新了问题:
是因为我使用12作为x,因为int y = x + 1所以它是12 + 1 然后13 + = 2,即15?
是的,见上文。