一、值传递
值传递不改变实参的值
void swap(int a, int b){
int temp = a;
a = b;
b = temp;
cout << "swap01 a = " << a <<endl;
cout << "swap01 b = " << b <<endl;
}
int main(){
int a = 10;
int b = 20;
swap(a,b);
cout << "a = " << a <<endl;
cout << "b = " << b <<endl;
}
输出结果为:
二、地址传递
地址传递可改变实参的值
void swap(int* a, int* b) {
int temp = *a;
*a = *b;
*b = temp;
cout << "swap02 a = " << *a << endl;
cout << "swap02 b = " << *b << endl;
}
int main()
{
int a = 10;
int b = 20;
swap(&a, &b);
cout << "a = " << a << endl;
cout << "b = " << b << endl;
}
输出结果为:
三、引用传递
应用传递可改变实参的值。
void swap03(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
cout << "swap03 a = " << a << endl;
cout << "swap03 b = " << b << endl;
}
int main(){
int a = 10;
int b = 20;
swap(a, b);
cout << "a = " << a << endl;
cout << "b = " << b << endl;
}
输出结果为: