这是针对C语言编程而言的。
假设我的程序中有下面的代码,在我的内存图中,假设程序终止,a的值是多少?
int fun1(int x);
int main (void)
{
int a = 5;
a = fun1(10);
}
int fun1(int x)
{
\\Program arbitrarily ends here
return x;
}
在我的内存图中,假设程序在fun1返回值之前就终止了,那么a的值会是什么?a的值是不确定的(??),还是会是5?
的值 a
已经初始化为5。现在,根据条件,你想知道这种情况下的结果,当你的 fun1()
在返回一个值之前就结束了;假设如下。
int fun1(int x)
{
// return x;
}
这里我们假设函数在返回值之前就退出了.
你仍然会得到输出 5
在程序执行之前、期间或之后,因为它只返回变量 a
被预先赋值为5,除非函数返回10并赋值给变量,否则不能将其改为10。
但是请记住,如果你没有给 a
那么它可能会显示一个意外的值(我得到的是 4195638
用时 printf()
对于 a
).