以下代码分别展示了函数的值传递、地址传递和引用传递。只有地址传递和引用传递才能改变参数实际的值。
#include <iostream>
using namespace std;
// Pass value
void swap01(int a, int b){
int temp = a;
a = b;
b = temp;
}
// Pass address
void swap02(int *a, int *b){
int temp = *a;
*a = *b;
*b = temp;
}
// Pass reference
void swap03(int &a, int &b){
int temp = a;
a = b;
b = temp;
}
int main(){
int a = 10;
int b = 20;
// swap01(a, b);
// swap02(&a, &b);
swap03(a, b);
cout<<"a = "<<a<<endl;
cout<<"b = "<<b<<endl;
return 0;
}