8.利用递归函数调用方式,将所输入的5个字符,以相反顺序打印出来。
网上一个网友的回复,我试过可运行,详见以下代码。以下代码我个人有三个疑问,请大家帮忙解答。
1)n为什么是1的时候,就代表获取的是最后一个字符呢?n和字符输入之间是通过什么联系起来的。
2)这里n<=1条件,不会出现死循环吗?n可以是0、-1……
3)这里char自动转换成int,为什么字符也可以转换成int?
#include<stdio.h>
int main()
{
int n=5; //这里n是字母的个数,也可以通过键盘输入
reverse(n);
return 0;
}
void reverse(int n)
{
int next;
if(n<=1)
{
next=getchar();
putchar(next);
}
else
{
next=getchar();
reverse(n-1);
putchar(next);
}
}