sum(int a,int b)
{
int x;
x = a+b;
}
int main()
{
printf("%d",sum(2,3));
}
如果我删除了x
,那么它将始终返回第一个参数,但我没有返回任何值。
答案 0 :(得分:1)
您正在尝试使用函数调用返回值,并且该函数中没有return
语句。
直接引用C11
,章节§6.9.1(除main()
以外的函数,脚注)
如果到达了终止函数的
}
,则使用函数调用的值 调用者,行为未定义。
脚注:
从章节§5.1.2.2.3
[...]到达终结的
}
main
函数返回值0。
答案 1 :(得分:-1)
int sum(int a,int b)
{
int x;
x = a+b;
return x;
}
int main()
{
printf("%d",sum(2,3));
}`
这是你的代码看起来如何,你有时会得到 的结果,因为x
是一个局部变量,它的值会一直存在于堆栈中,直到它被覆盖为止,所以你可能最终得到你想要的价值,或者你可能最终得到一些垃圾