下面这个程序是将一个字符串倒着输出。只能看懂当s长度不是1的时候,会不断的return长度短1的s,直到s只有字符f,然后就输出f,但是什么都没有return,那个时候递归函数不是应该结束了吗?怎么还在运行?又是为什么会输出其它的字符的?
#include<stdio.h>
#include<string.h>
void reverse(char s[])
{
int len;
len=strlen(s);
if(len==1)
{
printf("%c",s[0]);
}
else
{
reverse(s+1);
printf("%c",s[0]);
}
}
void main(void)
{
char s[20]={'\0'};
printf("请输入一窜字符:");
scanf("%s",s);
reverse(s);
printf("\n");
}