作业帮 > 综合 > 作业

递归函数void UnPrint(void){char c;c=getchar();if(c=='\n'){return

来源:学生作业帮 编辑:拍题作业网作业帮 分类:综合作业 时间:2024/04/27 20:19:05
递归函数
void UnPrint(void)
{
char c;
c=getchar();
if(c=='\n')
{
return ;
}
UnPrint();
putchar(c);
}
void main()
{
UnPrint();
}
假如输入 asdf回车
但遇到 回车键 程序中已经return掉了
为什么还会执行putchar(c) 四次 ,反向输出fdsa
输入\n->返回到上层调用(第5次调用)跟执行putchar(c)有什么关系.putchar(c)是之前已经被压入栈,所以即使return后,也会被执行吗
getchar() (第一次调用unprint)->输入a->a不为\n->getchar()(第2次调用unprint)->
输入s->不为\n->getchar()(第3次调用unprint)->输入d->不为\n->getchar()第4次调用unprint->输入f->不为\n第5次调用unprint->getchar()->输入\n->返回到上层调用(第5次调用)
你把整个过程分析下.