为了账号安全,请及时绑定邮箱和手机立即绑定

答案是选择 15,35 请问为什么不是 14,4 ?

答案是选择 15,35 请问为什么不是 14,4 ?

C PHP
慕后森 2022-09-03 10:06:17
下面程序运行后,其输出是( )int x,y;one(){int a,b;a=25,b=10;x=a-b;y=a+b;}main(){int a,b;a=9,b=5;x=a+b;y=a-b;one();printf(“%d,%d\n”,x,y);}(因为调用one函数,是实参传递给形参,单向传递,为什么不对???)
查看完整描述

3 回答

?
慕仙森

TA贡献1827条经验 获得超8个赞

全局引用的关系,任何的子函数都可以改变其值。如果改成
int x,y;
one()
{int a,b;
a=25,b=10;
x=a-b;y=a+b;
}
main()
{int a,b;
int x,y;
a=9,b=5;
x=a+b;y=a-b;
one();
printf(“%d,%d\n”,x,y);
}
结果就是14,4了

查看完整回答
反对 回复 2022-09-06
?
慕莱坞森

TA贡献1810条经验 获得超4个赞

是单向传递不错,但x和y是全局变量,不是你通过参数传递过去的,全局变量可以供所有的函数使用
也就是你one和main中使用x和y其实是同一个x和y而不是one和main自己定义的x和y,one中改变了x和y的值
则main中的x和y也会随之改变。

查看完整回答
反对 回复 2022-09-06
?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

需要注意的是:int x,y;这个是定义一个全局变量
最后
printf(“%d,%d\n”,x,y); 输出的也是全局变量
你在one(){}这个方法里面对x,y进行了赋值,所以输出的结果是15,35

查看完整回答
反对 回复 2022-09-06
  • 3 回答
  • 0 关注
  • 86 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号