下列程序的输出结果 fun(int a,int b,int c) {c=a*b;} int main(void) {int c; fun(2,3,c); p

下列程序的输出结果fun(inta,intb,intc){c=a*b;}intmain(void){intc;fun(2,3,c);printf("%d\n",c);re... 下列程序的输出结果
fun(int a,int b,int c)
{c=a*b;}
int main(void)
{int c;
fun(2,3,c);
printf("%d\n",c);
return 0;
}
A.0 B.1 C.6 D.无法确定
我们老师给的答案是D,为什么?
展开
 我来答
jesry_wu
2017-04-28 · TA获得超过942个赞
知道小有建树答主
回答量:793
采纳率:72%
帮助的人:209万
展开全部
因为fun中的c不是main中的c, 当fun函数return后,fun中的c生命就结束了,而main中的c依然还是一个没有初始化的变量,所以是一个不确定的值
追问
那为什么程序运行完结果是0,为什么不选0
追答
你运行的结果是0是因为你运行的是debug环境,在这种环境下,大多数的编译器都会把变量初始化为0,但最终使用的是release版本,不是debug版本。release的环境里,不会帮你做任何初始化的动作
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式