一口一个菠萝
2018-02-24 07:03
采纳率: 87.1%
浏览 1.5k
已采纳

C语言的putchar为什么会倒序输出字符串

图片说明

这个程序,当我输入123456回车之后,为什么会倒序输出654321
进入try,输入一个字符串123456,然后getchar取1赋值给c,再次执行try,取2赋值给c,依次向下,当取到回车的时候if不成立,执行putchar,这个时候c应该是等于6的才对呀,为什么c会变成654321

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

5条回答 默认 最新

  • herotan24 2018-02-24 07:25
    已采纳

    这个是递归的问题,从你的实现逻辑来看,如果当前不是换行就继续递归处理下一个字符。最后碰到换行字符,就依次地退出,出现654321的输出了。

    已采纳该答案
    评论
    解决 无用
    打赏 举报
  • Just_Hzheng 2018-02-24 07:24

    try()函数是一个递归,取到回车后,首先putchar打印6,try()函数会返回上一层调用打印5,接着依次打印4321

    评论
    解决 无用
    打赏 举报
  • baidu_35123889 2018-02-24 07:33

    看清楚,你的putchar也执行了6次

    评论
    解决 无用
    打赏 举报
  • weixin_39953084 2018-02-24 08:09

    try()函数里在putchar()之前以调用了try(),这就是递归调用,根据函数栈后进选出的原理,6是最后的,先输出

    评论
    解决 无用
    打赏 举报
  • jiru000000 2018-02-25 14:55

    try()是递归函数

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题