Gho*_*ing 3 c recursion function
我有一个包含递归函数的代码.我浪费了大量的时间进行递归,但我仍然无法得到它:
#include<stdio.h>
void count(int);
int main()
{
int x=10,z;
count(x);
}
void count(int m)
{
if(m>0)
count(m-1);
printf("%d",m);
}
Run Code Online (Sandbox Code Playgroud)
当第一次count调用参数为10.它满足条件,然后在这里启动递归部分.当函数调用自身时会发生什么?我不明白.请参考堆栈说明.
md5*_*md5 31
虽然m大于0,但我们称之为count.以下是堆栈调用的表示:
count (m = 10)
count (m = 9)
count (m = 8)
count (m = 7)
count (m = 6)
count (m = 5)
count (m = 4)
count (m = 3)
count (m = 2)
count (m = 1)
count (m = 0)
printf 0
printf 1
printf 2
printf 3
printf 4
printf 5
printf 6
printf 7
printf 8
printf 9
printf 10
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
575 次 |
| 最近记录: |