<分区>
我最近被要求考虑以下代码的输出:
#include <iostream>
int gvar;
int main (void)
{
cout << &gvar << endl;
while (true);
return 0;
}
此代码已编译并生成可执行文件。如果此可执行文件并行运行 2 个终端。它会打印什么。
我的回答是它会打印 2 个不同的地址。但是在运行时,我发现两个终端都打印了相同的地址。
有人能解释一下为什么会这样吗?我知道这可能是由于虚拟内存引起的,但我无法将各个部分放在一起。