qq_31851531
一口一个菠萝
采纳率93.1%
2018-02-24 07:03

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

5
已采纳

图片说明

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

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

5条回答

  • herotan24 herotan24 3年前

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

    点赞 评论 复制链接分享
  • jiru000000 jiru000000 3年前

    try()是递归函数

    点赞 评论 复制链接分享
  • weixin_39953084 weixin_39953084 3年前

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

    点赞 评论 复制链接分享
  • baidu_35123889 baidu_35123889 3年前

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

    点赞 评论 复制链接分享
  • HZ_Just Just_Hzheng 3年前

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

    点赞 评论 复制链接分享

相关推荐