#include<iostream> using namespace std; void swap(int,int,int,int); int main() { int m=1,n=2; swap(m,n); cout<<m<<' '<<n<<endl; return 0; } void swap(int a,int b,int c,int d) { int t; t=a; a=b; b=t; c=a; d=b; return; }结果发生变化了是为什么
时间: 2023-08-21 20:36:53 浏览: 85
使用include <iostream>时一定要加using namespace std
这段代码输出的结果仍然是1和2,因为在swap函数中交换的是形参a和b的值,并没有改变实参m和n的值。因此,即使在swap函数中对c和d进行了赋值操作,也不会改变m和n的值。如果要实现交换m和n的值,可以将swap函数改为如下形式:
```c++
void swap(int &a, int &b) {
int t = a;
a = b;
b = t;
}
```
然后在main函数中调用swap函数:
```c++
int main() {
int m = 1, n = 2;
swap(m, n);
cout << m << ' ' << n << endl;
return 0;
}
```
这样输出结果就是2和1了。
阅读全文