[問題] 關於c++的程式追蹤問題
# include <stdio.h>
main()
{
foo(7);
}
foo(int n)
{
if(n==10)
printf("done");
else
{ printf("%d",n);
foo(++n);
n--;
printf("%d",n);
}
}
答案是:7 8 9 done 9 8 7
可以請問這個程式是怎麼跑的嗎?
我算的流程是
(1)一開始7代入,跑else那段,印出7
(2)再跑遞迴foo(8),印出8,...一直到foo(10)
疑問:為什麼印完done之後
後面要跟著印呢?
以上謝謝各位前輩的解說
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.147.87.253
推
06/19 09:36, , 1F
06/19 09:36, 1F
→
06/19 09:49, , 2F
06/19 09:49, 2F
推
06/19 12:03, , 3F
06/19 12:03, 3F
→
06/19 12:05, , 4F
06/19 12:05, 4F
→
06/19 13:33, , 5F
06/19 13:33, 5F
推
06/19 13:39, , 6F
06/19 13:39, 6F
→
03/31 10:21, , 7F
03/31 10:21, 7F
→
03/31 10:28, , 8F
03/31 10:28, 8F