递归函数void UnPrint(void){char c;c=getchar();if(c=='\n'){return ;}UnPrint();putchar(c);}void main(){UnPrint();}假如输入 asdf回车但遇到 回车键 程序中已经return掉了为什么还会执行putchar(c) 四次 ,反向输出fdsa输入\n
来源:学生作业帮助网 编辑:六六作业网 时间:2024/12/20 15:36:36
递归函数void UnPrint(void){char c;c=getchar();if(c=='\n'){return ;}UnPrint();putchar(c);}void main(){UnPrint();}假如输入 asdf回车但遇到 回车键 程序中已经return掉了为什么还会执行putchar(c) 四次 ,反向输出fdsa输入\n
递归函数
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后,也会被执行吗
递归函数void UnPrint(void){char c;c=getchar();if(c=='\n'){return ;}UnPrint();putchar(c);}void main(){UnPrint();}假如输入 asdf回车但遇到 回车键 程序中已经return掉了为什么还会执行putchar(c) 四次 ,反向输出fdsa输入\n
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次调用)
你把整个过程分析下.