为什么子进程在我重新澄清变量(同名)后只保留旧版本的变量?
嗨,我只是尝试运行以下代码
#include <iostream>
#include <unistd.h>
using namespace std;
int main() {
int a = 3;
for (int i = 0; i < 3; ++i) {
cout << getpid() << " " << a << endl;
int a = 0;
if (fork() == 0) {
continue;
}
break;
}
wait(0);
exit(0);
}
输出是
11470 3
11471 3
11472 3
有人知道为什么输出不为0吗?
您的代码声明了一个 new 变量
a
。要为现有变量分配新值,请执行以下操作:
// int a = 0; << don't do that
a = 0;