回答編集履歴

1

補足を質問文の文言に対する回答として追記した。

2021/01/13 08:42

投稿

hidezzz
hidezzz

スコア1248

test CHANGED
@@ -29,3 +29,11 @@
29
29
  printf("\n"); // 改行を入れる
30
30
 
31
31
  ```
32
+
33
+
34
+
35
+ > '0'が引数として渡される回のprintAlphabet関数では、return文が実行され、呼び出し元に戻り、 その呼び出し元では、引数は、'z'になっているはずだと認識していたのですが、 実際には、'0'になっています。
36
+
37
+
38
+
39
+ 再帰呼び出しを「printAlphabet(++alphabet)」の形で呼び出しており、'z'の回の再帰呼び出しでは「++alphabet」の段階でポインタ位置は'\0'に移動するため、その後の改行判定のif条件は成立して改行が出力されます。