微枫1993
2014-10-10 12:29
采纳率: 33.3%
浏览 2.0k

static静态变量问题,菜鸟求大家伙给个答案

int main(void)
{
static int i=5;
if(--i)
{
main();
cout<<i<<endl;
}
}
为什么输出结果是0000?
菜鸟求详解啊!么么哒

  • 写回答
  • 好问题 提建议
  • 追加酬金
  • 关注问题
  • 邀请回答

3条回答 默认 最新

  • Vincent_TT 2014-10-11 02:32
    最佳回答

    4,3,2,1,0一共5个数,因为0的时候不进if了所以递归终止了,然后返回到上一次递归也就是i=1的时候,但是这时候实际上i的值是0了所以打印0并且换行,以此类推,
    i=2的递归,打印 0 换行
    i=3的递归,打印 0 换行
    i=4的递归,打印 0 换行
    所以是4次0

    首先你得理解递归的意思

    评论
    解决 无用
    打赏 举报
查看更多回答(2条)

相关推荐 更多相似问题