为什么在代码中未返回该函数的情况下,该函数将返回值?

时间:2018-07-24 05:30:53

标签: c recursion return

为什么即使我没有将变量a的输出返回到上一个函数,下面的代码也要返回输出。

int fact(int n)
{
    int a;
    if (n <= 1) 
        return 1;
    else
        a = n*fact(n-1);
}
int main()
{
    int c=fact(5);
    printf("%d",c);
}

1 个答案:

答案 0 :(得分:2)

引用C11,第6.9.1章

  

如果到达终止函数的},并且函数调用的值由   调用者,行为是不确定的。

因此,您的程序表现出未定义的行为。