我正在尝试执行以下代码,因为该函数没有返回值,但是它是用整数返回类型定义的。它是如何运行的,没有任何错误。
#include <stdio.h>
int fn(int a, int b){
int temp = b;
a = 2*temp;
b = a;
}
int main()
{
int x,y,printval;
scanf("%d%d",&x,&y);
printval = fn(x,y);
printf("%d", printval);
return 0;
}
我期望输出错误,但结果为40(input:10,20)
答案 0 :(得分:2)
您的代码具有未定义的行为,这意味着一切皆有可能;您完全不应该依赖它。
(重点是我的)
从具有cv
void
返回类型的构造函数,析构函数或非协程函数的末尾流出,等同于没有操作数的return
。 否则,从main
或协程([dcl.fct.def.coroutine])之外的函数结束流出会导致不确定的行为。