请问第六题为什么是A

img


1111111111111111111111111111111凑提问数字

你sub函数中x,y是传值,
通过调用sub(x3,x4)无法改变主函数main()中x3,x4的值,因为传给sub()的x,y参数实际上是主函数main()中x3,x4变量的一份拷贝,
sub()的x,y参数和主函数main()中x3,x4的地址并不一样,交换的只是sub()的x,y参数的值,当调用完sub后,sub()的x,y参数所占的内存空间会被释放,所以主函数main()中x3,x4的值并没有被改变,还是10和20。
x1,x2是全局变量,所有函数中都能访问,
sub(x2,x1)是把x2的值40传给sub()的x,sub()中的 x1=x 又把40赋值给了全局变量x1
x1就变成40了

如有帮助,请点击我的回答下方的【采纳该答案】按钮帮忙采纳下,谢谢!

img

这个sub函数看似作用是交换两个数的值,但是这个函数没有任何的返回值,所以x3和x4的值并没有被改变,而x1和x2是全局变量,x1在sub函数中会被改变。

传递到sub函数中的是值,而main函数中的变量地址内的值并没有被改变
请参考值传递和引用传递

您好,我是有问必答小助手,您的问题已经有小伙伴帮您解答,感谢您对有问必答的支持与关注!
PS:问答VIP年卡 【限时加赠:IT技术图书免费领】,了解详情>>> https://vip.csdn.net/askvip?utm_source=1146287632

x2全局变量40,
x1在sub(x2,x1)被赋值40,
x1和x2都是40 选A。