#include <iostream>
using namespace std;
void swap(int *a, int *b, int x, int y) {
*a = y;
*b = x;
}
int main() {
int x = 900;
int y = 700;
cout << "交换前x=" << x << endl;
cout << "交换前y=" << y << endl;
cout << endl;
swap(&x, &y, x, y);
cout << "交换后x=" << x << endl;
cout << "交换后y=" << y << endl;
cout << endl;
swap(x, y);
cout << "再次交换后x=" << x << endl;
cout << "再次交换后y=" << y << endl;
system("pause");
return 0;
}
运行结果:
我定义了个swap函数,交换x和y的值,里面有4个参数,两个内存地址,两个值,我的思路是直接把内存地址上的值改了,则x和y也就互相交换了值,swap(&x, &y, x, y)这一步是正常的,但是我很奇怪,swap(x,y)也可以交换x和y的值,我定义的函数不应该是4个参数吗?怎么也可以运行,并且可以交换数值,没看不懂。
我是C++初学者,请大佬解惑,谢谢!!!