为什么没有return语句的main函数返回值12?

我编写了一个打印表格的程序。我没有在主函数中包含返回语法,但是无论何时我键入echo $?它显示12。

我的源代码:

#include <stdio.h>

int main(void)

{

int ans,i,n;

printf("enter the no. : ");

scanf("%d",&n);

for(i=1;i<=10;i++)

{

ans = n*i;

printf("%d * %d = %d\n",n,i,ans);

}

}

我尚未编写return 12,但每次执行程序时它仍返回12。

谢谢。

回答:

正如swegi所说,这是未定义的行为。 正如史蒂夫·杰索普(Steve

Jessop)等人所说,在C89之前,它是一个未指定的值,并在C99中指定(观察到的行为与C99不符)。

在大多数环境中实际发生的情况是,最后一个值的返回值printf保留在用于返回值的寄存器中。

因此,对于n == 0,它将是11;如果n是一位,它将是12;对于两位n,它将是14;对于三位n将是16,等等。

以上是 为什么没有return语句的main函数返回值12? 的全部内容, 来源链接: utcz.com/qa/399835.html

回到顶部