#include<iostream>
using namespace std;
int swap01(int a,int b);
int swap02(int* p1,int* p2);
int swap01(int a,int b)
{
inttemp = a;
a= b;
b= temp;
cout << "swap01中a="<< a << endl;
cout << "swap01中b="<< b << endl;
//形参可以改变
return0;
}
int swap02(int* p1,int* p2)
{
inttemp = *p1;
*p1= *p2;
*p2= temp;
return0;
}
int main()
{
//值传递和地址传递
inta = 10;
intb = 20;
swap01(a,b);
cout<< "a=" << a << endl;
cout<< "b=" << b << endl;
//值传递不会改变main函数中的实参
//地址传递
swap02(&a,&b);
cout<< "a=" << a << endl;
cout<< "b=" << b << endl;
//地址传递可以改变main函数中的实参的值;
}
总结:
地址是系统中的编号 一般不会随意改变
值传递时,只是将main函数中数据复制一份到子函数中,子函数中的值改变,不会改改main函数中的数据
地址传递时,数据的地址更改则数据更改,可以改变main函数中的数据。