非常抱歉询问一个已经讨论多次的基本问题,我无法找到答案。我尝试在论坛中搜索相关的问题但没有找到确切的答案(或者我没有理解)。
为什么这个函数在不同的顺序调用时会将 i 到 10 的数字打印两次?难道它不应该按照相同的顺序打印出来吗?我一直听说递归是这样工作的:每个函数在其代码中调用另一个相同的函数,只是应用于更小的域,直到满足结束条件。此时它应该返回(回溯)到原始函数;这就是我不理解的地方,为什么它会返回(不是作为语法调用)到主函数。
void count(int i){
if(i < 10){
printf("%d\n", i);
count(i + 1);
printf("%d\n", i);
}
}
谢谢。