C 为什么我要获得此输出.(这里的绿角)
C++ Why am I getting this output. (Greenhorn here)
因此,在以下代码中,我一直在试图弄清楚代码的输出为何为...
x = 2,y = 2
当我最初认为它是x = 1且y = 1时进入我的头。
int main()
{
int x = 0;
int& y = x;
y++;
x++;
std::cout << "x = " << x << " y = " << y << std::endl;
}
x和y与彼此没有什么不同。参考意味着x的另一个名称为y。因此,当您调用Y时,它将调用X,这意味着如果增加Y,则会增加x。然后,您再次增加x,然后x变为2。并且因为y代表x,当您调用y时,它调用x,然后再次看到2。
关键点是参考标志的含义:
int& y = x;
- 它代表您将别名分配给" x",因此" y"实际上共享与" x" do(物理上)相同的内存地址。
做
y++;
将更改该内存地址内部的值,这两者都由" x"&amp;&amp;共享。'Y'。与操作相同
x++;
结果,您在相同的内存地址上进行了2个增量,并具有" 0"的Intial值,该值将变为'2'。
- 相同的想法,因为" x"answers" y"都指向完全相同的内存地址,因此打印'x'和y'都会给您相同的值。
相关文章:
- 警告处理为错误这里有什么问题
- 递归函数计算序列中的平方和(并输出过程)
- 努力将整数转换为链表。不知道我在这里做错了什么
- 如何使用 < 和 > 命令获取 c++ 中的输入和输出?
- 请解释"函数1(p1,p2,p3);"的输出
- C++:将控制台输出存储在宏中更好吗
- 创建一个函数以在输入为负数或零时输出字符串.第一次执行用户定义的函数
- 如何在OMNET++中指定与命令行参数组合的输出文件名
- 为什么我的代码在输出中增加了93天
- 如何从void函数输出字符串
- 输入到文件并输出到另一个文件,并将流文件传递给函数
- AES加密到解密未正确输出
- 在这里,我编写了一个使用 2 维数组并打算执行行和的 C++ 代码,但它没有给出正确的输出
- 我想我没有完全理解指针,但是为什么这里的输出有所不同?
- 为什么意外值6295648在输出中带有答案11110001?在这里输入是241和2
- 这里发生了什么,还有输出是什么?(无线索)
- C 为什么我要获得此输出.(这里的绿角)
- 此代码的输出是什么?我在这里错过了什么吗?
- 我已经设法将一些代码从 msdn 移植到 MinGW 以从子应用程序捕获标准输出,但它不会退出,这里有什么问题?
- 为什么我在这里得到两个不同的输出