【发布时间】:2014-10-24 02:22:13
【问题描述】:
以下是我的代码:
#include<stdio.h>
int i =5;
int main(i)
{
if(i<10)
printf(" %d\n",printf("%d",i+main(++i)));
return 0;
}
输出
(在 Ideone.com 和 Codeblocks 中)
10 2
9 1
8 1
7 1
6 1
5 1
4 1
3 1
2 1
有人能解释一下这个输出背后的原因吗?我预计是 91, 81, ...., 51。另外,递归 main() 是否会导致意外输出?
PS:这是我在网上论坛上找到的一个程序。
【问题讨论】:
-
您的示例无法编译。
-
@Aniket 不,它应该编译。check
-
c99 标准,他的代码无法编译@Jayesh
-
gcc 编译得很好