疑問点
初学者です。c言語の簡単なコードなのですが、動作がいまいちよく理解できません。出力結果のstartが表示される前半部分はわかるのです、後半のendの部分がなぜ、0から5まで増えていくのでしょうか? サンドイッチにように外側から内側に向けて出力されていくからだと思っているのですが、合っているでしょうか?
該当のソースコード
c
1#include <stdio.h> 2#include <stdlib.h> 3 4void func(int n,int arg) 5{ 6 printf("func(%d,%d): start\n",n,arg); 7 if (n > 0){ 8 func(n-1,arg); 9 } 10 printf("func(%d,%d): end\n",n,arg); 11} 12int main(int argc, char **argv) 13{ 14 int arg; 15 if (argc < 2) 16 return 1; 17 arg = atoi(argv[1]); 18 func(5,arg); 19 return 0; 20}
試したこと
func(5,1): start
func(4,1): start
func(3,1): start
func(2,1): start
func(1,1): start
func(0,1): start
func(0,1): end
func(1,1): end
func(2,1): end
func(3,1): end
func(4,1): end
func(5,1): end
回答1件
あなたの回答
tips
プレビュー