下面程序定义的reverse函数是怎样实现字符串逆序输出的,真心看不懂,求解????谢谢啦
#include<stdio.h>voidreverse(){charc;if((c=getchar())!='\n')reverse();if(c!='\n')putc...
#include<stdio.h>
void reverse()
{
charc;
if((c=getchar())!='\n')
reverse();
if(c!='\n')putchar(c);
}
main()
{
reverse();
} 展开
void reverse()
{
charc;
if((c=getchar())!='\n')
reverse();
if(c!='\n')putchar(c);
}
main()
{
reverse();
} 展开
展开全部
这是使用递归实现字符串逆序输出的,分析一下流程就清楚了,举个例子吧:
假设输入字符串为"12",
则程序的流程为
抽取字符'1'-->调用reverse()(1层)-->抽取字符'2'-->调用reverse()(2层)-->抽取字符'\n'
-->调用reverse()(3层)-->第三层的reverse结束-->返回到第二层的reverse,输出'2'
-->返回第一层的reverse,输出'1'-->函数结束
不太好说明白,你自己画画图体会一下吧。
假设输入字符串为"12",
则程序的流程为
抽取字符'1'-->调用reverse()(1层)-->抽取字符'2'-->调用reverse()(2层)-->抽取字符'\n'
-->调用reverse()(3层)-->第三层的reverse结束-->返回到第二层的reverse,输出'2'
-->返回第一层的reverse,输出'1'-->函数结束
不太好说明白,你自己画画图体会一下吧。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询