[英]Why does the below recursive main function start with the value 1 as parameter?
因此,当我在 gcc 中执行以下代码时:
int main (int n)
{
if (n==5) return 0;
else
{
printf ("%d ",n);
main (n+1);
}
}
它产生 output 1 2 3 4
而不是(我不合理地期望的) 0 1 2 3 4
或不同的东西,因为n
没有在任何地方初始化。 编译器如何确定n
是否为 1?
默认情况下,主 function 的第一个参数是 arguments 的编号,其中一个始终是程序的名称。 因此,当您执行程序时,n(等于 argc)等于 1,如下所示:
int main(int argc, char **argv) {
/* do something here */
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.