提问 虽然输入了,但是输出不会被fun()给顶了吗?还能输出?
#include<stdio.h>
int main()
{
fun();
}
int fun()
{char s;
s=getchar();
if(s=='\n')
return 0;
fun();
putchar(s);
}
函数有一点点问题,修改如下,增加了一个fun()的声明,不然main函数调用的时候会报错。
#include<stdio.h>
int fun();
int main()
{
fun();
}
int fun()
{char s;
s=getchar();
if(s=='\n')
return 0;
fun();
putchar(s);
}
由于输入字符串时,最后一个字符总是'\n',由于递归调用是从前向后传递一个个的字符,但遇到‘\n’时,该函数fun()会返回0,进而导致上一级的putchar(s);被执行,从而打印出最后一个字符,依次从后向前分别打印出每个字符。
不知道这样的解释能明白不。