由于需要两次调用n-1将其设置为概念,所以我无法理解代码的编译方式。
代码:
void tower(int n, char A, char B, char C)
{
if (n == 0)
return;
else
{
tower(n - 1, A, C, B);
printf("Disk %d from %c to %c\n", n, A, B);
tower(n - 1, C, B, A);
}
}
int main()
{
tower(3, 'A', 'B', 'C');
}
有人可以帮忙了解它如何在编译器/堆栈中执行每个步骤吗?
希望你们能帮助我。谢谢!