小弟昨天在论坛上看见这样一段关于翻转字符串的代码:
#include <stdio.h>
void reverse(char *s)
{
if(s[0] == '\0')
return;
else
{
reverse(&s[1]);
putchar(s[0]);
}
}
int main()
{
char s[100];
gets(s);
reverse(s);
return 0;
}
输入:sf
输出:fs
为什么putchar(s[0]);可以多次调用? 是因为在最后s[0]==’\0',才把它以前调用的值依次输出么?好奇恨 求解释。。。。。