一道C++题目,求详解

有如下程序:
#include<iostream>
using namespace std;
int main()
{
void function(double val);
double val;
function(val);
cout<<val;
return 0;
}
void function(double val)
{
val=3;
}
编译运行这个程序将出现的情况是(D)
A 编译出错,无法运行
B 输出:3
C 输出:3.0
D 输出一个不确定的数

当调用函数以后栈将为val= 3分配空间;当离开函数val释放变成一个垃圾数据。当再次调用也是同样原理。
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-12-18
不同函数之间定义的相同数据名彼此之间没有关系,function函数的val的赋值只能在function函数当中起作用,与主函数当中的val没有任何关系。本回答被提问者采纳
第2个回答  2013-12-18
你一开始没有给val赋值,因为val是定义在函数里的一个非静态空间的局部变量,所以他的值是不确定的;
第二,参数传递只能是实际参数传递给形式参数
第3个回答  2013-12-18
主函数里的val不是function里的val,主函数里并未对val赋值,如果在主函数里val=1;
就是输出1,val=3就是输出3
相似回答