C ++输出找出问题
c++ output figuring out problems
#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。
是否因为我使用 12 作为 x
用于 int y = x + 1
所以它是 12 + 1
即 13 然后 13 += 2
即 15?
Is it because I use 12 as x
for int y = x + 1
so it's 12 + 1
which is 13 and then 13 += 2
which is 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.
值在 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
更新问题:
Is it because I use 12 as x for int y = x + 1 so it's 12 + 1 which is
13 and then 13 += 2 which is 15?
是的,见上文。
#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。
是否因为我使用 12 作为 x
用于 int y = x + 1
所以它是 12 + 1
即 13 然后 13 += 2
即 15?
Is it because I use 12 as
x
forint y = x + 1
so it's12 + 1
which is 13 and then13 += 2
which is 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.
值在 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
更新问题:
Is it because I use 12 as x for int y = x + 1 so it's 12 + 1 which is 13 and then 13 += 2 which is 15?
是的,见上文。