【发布时间】:2018-07-05 08:32:41
【问题描述】:
这是我在C 中的程序。
f(int n){
if(!n){
return 0;
}
printf("%d", f(--n));
printf("*");
return (n+1);
}
int main()
{
f(3);
return 0;
}
它会打印:
0*1*2*
现在我不明白为什么它首先进入 printf 并进入 (--n)
但在达到 0 之前不打印任何内容
【问题讨论】:
-
这不是递归的好例子,但对于理解递归来说是一个很好的(足够简单)。
-
您为什么要使用 30 多年的过时风格编写 C?谁教你这样做的?
-
我的教授给我们这个来理解递归的过程
-
@MarkoPrtenjača 我认为他们应该在 2018 年专注于教你如何编程 C,而不是在 1978 年如何编程。但这是我个人的意见......
-
@Lundin 是的,我知道他们有时在向我们展示这些类型的程序时真的很奇怪哈哈