int x = 10, y = 20; void fun(int x, int& y) { x += y; y += x; } int main() { int x = 5, y = 10; fun(x, y); fun(y, x); cout << x << ',' << y << endl; return 0; }解释一下这串代码,为什么x用5y用10
时间: 2023-07-15 13:11:36 浏览: 101
用程序求10+20,并输出结果
这段代码定义了一个全局变量x和y,并且定义了一个函数fun,该函数有两个参数,一个是传值参数x,另一个是引用参数y。函数的作用是将传值参数x加上引用参数y的值,并将引用参数y加上加上后的传值参数x和原来的引用参数y的和。
在main函数中,定义了局部变量x和y,分别赋值为5和10。然后依次调用fun函数两次,第一次传递的参数分别是x和y,第二次传递的参数分别是y和x。因为x和y是局部变量,所以在fun函数中使用的是局部变量的值而不是全局变量的值。
因为第一次传递的参数是x和y,所以fun函数中的x等于5,y等于10。执行完fun函数后,x的值变成了5+10=15,y的值变成了10+15=25。然后第二次传递的参数是y和x,所以fun函数中的x等于10+25=35,y等于25+35=60。最后输出的结果是60, 35。
至于为什么x用5,y用10,我猜测是为了演示局部变量和全局变量的区别,以及传值参数和引用参数的区别。
阅读全文