近期再次阅读《c语言深度剖析》对递归有了更好的的理解。
#include<stdio.h>
#include<assert.h>
void func(int a)
{
if(a>0)
func(a/2);
printf("%d \r\n",a);
}
int my_strlen(char *str)
{
assert(NULL != str);
if('\0' == *str)
return 0;
else
return (1+my_strlen(++str));
}
int main()
{
int k;
func(10);
k = my_strlen("abcdef");
printf("%d \r\n",k);
return 0;
}
下面是执行结果: