【发布时间】:2019-07-19 10:32:59
【问题描述】:
我正在尝试执行以下代码,因为该函数没有返回值,但它是用整数返回类型定义的。它是如何在没有任何错误的情况下运行的。
#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)
【问题讨论】:
-
在 C++ 中,返回正确的值取决于您。如果您不返回任何值,则没有错误。它可以被视为未定义的行为。在这种情况下,很可能返回了存储在 eax 注册表中的当前值(很可能是临时值)