#include<iostream>
using namespace std;
void swap01(int num1, int num2);//值传递方式
void swap02(int* p1, int* p2);//地址传递方式
int main() {
int a = 10, b = 20;
swap01(a, b);//值传递不会改变实参
cout << "值传递函数交换后a=" << a << " b=" << b << endl;
swap02(&a, &b);//地址传递会改变实参
cout << "地址传递函数交换后a=" << a << " b=" << b << endl;
system("pause");
return 0;
}
void swap01(int num1, int num2) {
int t = num1;
num1 = num2;
num2 = t;
}
void swap02(int* p1, int* p2) {//传进来的参数是a、b的地址
int t = *p1;//*(解引用获取a值)
*p1 = *p2;
*p2 = t;
}
总结:如果不想修改实参,就用值传递,如果想修改实参就用地址传递