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 作为int y = x + 1
的x
,所以它是 12 + 1
哪个是 13,然后是 13 += 2
哪个是 15?
是因为我使用 12 作为
int y = x + 1
的x
,所以它是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?
是的,见上文。
相关文章:
- 可能我知道为什么这段代码没有给出任何输出吗?
- 有没有办法我可以在 C++ 中使用 if 语句来说明如果一个字符串不是两个名称的 eqal,它会给出一个输出,ATM i
- 为什么带有逻辑和运算符以及增量运算符的 c++ 程序给出的输出与预期不同?
- C++向量排序给出0作为输出
- 奇怪的数字随机出现在输出中.(C++)
- 如何从Visual Studio中的给出.pyd输出中构造Python代码
- 我将 c++ 矢量数据集转换为 c 数组.我将相同的数据集传递到一个应该给出相同输出的函数中
- 向量<对<双精度,双精度>>给出问题
- 为什么这段代码给出的输出与预期不同?
- C 反向一个不给出预期输出的数组
- 矢量在超出边界时给出0作为输出
- 我很确定我犯了一个愚蠢的错误,但是这段代码给出的输出太长而无法阅读
- C++ 中的侵蚀函数不给出任何输出
- 为什么字符串变量"sum"不存储任何数据,程序不给出任何输出
- 输入层类型:图像数据在窗口咖啡cpp中给出空白输出
- 在队列中,插入和删除后,被删除的元素也会出现在输出中.为什么
- 服务器未收到UDP数据包,花费数小时试图找出问题所在
- 程序给出 0 作为输出 (C++)
- C++ 输出找出问题
- 在成功运行10小时后,在发布模式下从windows应用程序中获得异常,如何检测出问题