C++ 输出找出问题

c++ output figuring out problems

本文关键字:出问题 输出 C++      更新时间:2023-10-16
#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 作为int y = x + 1x,所以它是 12 + 1 哪个是 13,然后是 13 += 2哪个是 15?

是因为我使用 12 作为int y = x + 1x,所以它是 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.

这些值在 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 然后 13 += 2 哪个是 15?

是的,见上文。