如果之前定义了一个变量,正在等待一个函数返回一个值,那么这个变量的值是什么?

问题描述 投票:0回答:1

这是针对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?

c
1个回答
0
投票

的值 a 已经初始化为5。现在,根据条件,你想知道这种情况下的结果,当你的 fun1() 在返回一个值之前就结束了;假设如下。

int fun1(int x) 
{
    // return x;
}

这里我们假设函数在返回值之前就退出了.

你仍然会得到输出 5 在程序执行之前、期间或之后,因为它只返回变量 a 被预先赋值为5,除非函数返回10并赋值给变量,否则不能将其改为10。

但是请记住,如果你没有给 a那么它可能会显示一个意外的值(我得到的是 4195638 用时 printf() 对于 a).

© www.soinside.com 2019 - 2024. All rights reserved.