我编写了一个打印表格的程序。我没有在主函数中包含返回语法,但是无论何时我键入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保留在用于返回值的寄存器中。
printf
因此,对于n == 0,它将是11;如果n是一位,它将是12;对于两位n,它将是14;对于三位n将是16,等等。