#include<iostream>
using namespace std;
int main() {
void swap1(int x, int y);
void swap2(int* p1, int* p2);
void swap3(int* p1, int* p2);
int a = 12, b = 24;
int* p1 = &a;
int* p2 = &b;
cout << "交换前: " << endl;
cout << " a=" << a << " b=" << b << endl;
cout << " a的地址为: " << p1 << " b的地址为: " << p2 << endl;
swap1(a, b);
cout << "第一次交换后:(函数外,实参变化) " << endl;
cout << " a=" << a << " b=" << b << endl;
cout << " a的地址为: " << p1 << " b的地址为: " << p2 << endl;
swap2(p1, p2);
cout << "第二次交换后:(函数外,实参变化) " << endl;
cout << " a=" << a << " b=" << b << endl;
cout << " a的地址为: " << p1 << " b的地址为: " << p2 << endl;
swap3(p1, p2);
cout << "第三次交换后:(函数外,实参变化) " << endl;
cout << " a=" << a << " b=" << b << endl;
cout << " a的地址为: " << p1 << " b的地址为: " << p2 << endl;
return 0;
}
void swap1(int x, int y)
{
int temp;
temp = x;
x = y;
y = temp;
cout << "第一次交换后:(函数内,形参变化) " << endl;
cout << " a=" << x << " b=" << y << endl;
cout << " a的地址为: " << &x << " b的地址为: " << &y << endl;
}
void swap2(int* p1, int* p2)
{
int temp;
temp =* p1;
* p1 =* p2;
* p2 = temp;
cout << "第二次交换后:(函数内,形参变化) " << endl;
cout << " a=" << *p1 << " b=" << *p2 << endl;
cout << " a的地址为: " << p1 << " b的地址为: " << p2 << endl;
}
void swap3(int* p1, int* p2)
{
int* temp;
temp = p1;
p1 = p2;
p2 = temp;
cout << "第三次交换后:(函数内,形参变化) " << endl;
cout << " a=" << * p1 << " b=" << *p2 << endl;
cout << " a的地址为: " << p1 << " b的地址为: " << p2 << endl;
}