回答編集履歴
1
コード追記
answer
CHANGED
@@ -1,1 +1,19 @@
|
|
1
|
-
`out 1`の出力後の次の実行位置は、呼び出し元の`wand(n - 1);`の次の行であるためです。
|
1
|
+
`out 1`の出力後の次の実行位置は、呼び出し元の`wand(n - 1);`の次の行であるためです。
|
2
|
+
再帰呼び出しを以下のように展開してみれば理解できると思います。
|
3
|
+
```C
|
4
|
+
wand(int n) // n = 3
|
5
|
+
{
|
6
|
+
printf("in %d\n", n); // n = 3
|
7
|
+
wand(int n) // n = 2
|
8
|
+
{
|
9
|
+
printf("in %d\n", n); // n = 2
|
10
|
+
wand(int n) // n = 1
|
11
|
+
{
|
12
|
+
printf("in %d\n", n); // n = 1
|
13
|
+
printf("out %d\n", n); // n = 1
|
14
|
+
}
|
15
|
+
printf("out %d\n", n); // n = 2
|
16
|
+
}
|
17
|
+
printf("out %d\n", n); // n = 3
|
18
|
+
}
|
19
|
+
```
|