对于一些作业,我需要弄清楚该程序创建了多少个变量“c”的副本,以及它们的值。一个解释也很好,因为我试图在第一年从一个不那么优秀的计算机科学教授中恢复过来。
以下是代码段:
int child = fork();
int c = 5;
if (child == 0)
{
c += 5;
}
else
{
child = fork();
c += 10;
if (child)
{
c += 10;
}
}
答案 0 :(得分:1)
总共有三个进程,因此最终会有c
的3个副本。
在第一个孩子中,c
的值为10
(int c = 5;
为5,c += 5;
为5)。
在第二个孩子中,c
的值为15
(来自int c = 5;
的5个,来自第一个c += 10;
的10个)。
在父级中,c
的值为25
(int c = 5;
为5,第一个为c += 10;
为10,第二个为{{1} }})。