2 回答
慕虎7371278
TA贡献1802条经验 获得超4个赞
举个形象点的例子:输入12345.
输出.54321
这是一个递归函数,再次调用的时候,对程序而言,旧的reverse函数运行状态已经被保存在堆栈中了,因而局部变量ch不会被覆盖。就好像有六本一样的书,都叫reverse,第一本书上我写1,放到桌上,第二本同样的位置写2,放到第二本书上,此时,第二本上的2并不会覆盖第一本上的1。第三本写3,放到第二本...直至第五本。
第六本写上.
现在开始输出,把六本书一本本拿起,首先,我看到了第六本上的.,拿走第六本,然后看到第五本上的5,拿走,然后是第四本上的4,再拿走...最后拿走第一本拿走时我看到的顺序就是.54321
修改成'\n'会失败的原因是cin>>会自动忽略空白字符(' ','\t','\n'),所以程序永远无法获取'\n‘,这个放书的过程也永远不会结束。建议详细学习一下程序堆栈的原理,就好理解了,这里不好细讲。
12345678_0001
TA贡献1802条经验 获得超5个赞
添加回答
举报
0/150
提交
取消