问个递归调用的问题
请问下面两段代码,为啥是其对应的输出结果呢?
1、输出:120(重点想问n--的执行顺序,以及为什么这样)
int step(int n)
{
if (n > 1) {
return n-- * step(n);
} else {
return 1;
}
}
int main(int argc, char* argv[])
{
int a = step(5);
printf("%d", a);
return 0;
}2、输出:24
int step(int n)
{
if (n > 1) {
return n * step(--n);
} else {
return 1;
}
}
int main(int argc, char* argv[])
{
int a = step(5);
printf("%d", a);
return 0;
}