【发布时间】:2013-09-28 15:39:42
【问题描述】:
这个程序不应该无限运行,因为每次都会调用 main 吗?为什么它的输出是0 0 0 0?我知道这是一个菜鸟问题,但我无法得到它。 --i 做什么以及将 i 声明为静态的效果是什么?
int main()
{
static int i=5;
if(--i){
main();
printf("%d ",i);
}
}
【问题讨论】:
-
您的问题真的是“
--i是什么意思?”,而不是“为什么这不能无限运行?”? -
@OliCharlesworth 嗨,不,我知道 --i 是什么意思。我想知道如何在 if 条件下使用它?它会一直运行到 i 变为 0 吗?
-
不,它以递归方式工作,并且仅因为
i是static int而工作。 -
“--i 做什么以及将 i 声明为静态的效果是什么?” - 也许阅读语言规范?