//值传递
void mySwap01(int a,int b) {
int temp = a;
a = b;
b = temp;
}
//地址传递
void mySwap02(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
}
//引用传递 本质是地址传递 自动转化为 int* const a = &a3 , int * const b = &b3
void mySwap03(int& a, int& b) {
int temp = a;
a = b;
b = temp;
}
void test003() {
int a1 = 10,a2=10,a3=10;
int b1 = 20,b2=20,b3=20;
mySwap01(a1, b1);
cout << "Swap01 值传递 a1:\t" << a1 << " b1:" << b1 << endl;
mySwap02(&a2, &b2);
cout << "Swap02 地址传递 a2:\t" << a2 << " b2:" << b2 << endl;
mySwap03(a3, b3);
cout << "Swap03 引用传递 a3:\t" << a3 << " b3:" << b3 << endl;
}
int main(){
test003();
return 0;
}
结果:
Swap01 值传递 a1: 10 b1:20
Swap01 地址传递 a2: 20 b2:10
Swap01 引用传递 a3: 20 b3:10