/****引用本质是一个指针常量********/
#include<iostream>
using namespace std;
//值传递
void swap_1(int a, int b)
{
int tmp = a;
a = b;
b = tmp;
}
//址传递
void swap_2(int* c, int* d)
{
int tmp = *c;
*c = *d;
*d = tmp;
}
//引用传递
void swap_3(int &a, int &b)
{
//子函数引用也可以重名 ,a可以换成e,b可以换成f
int tmp = a;
a = b;
b = tmp;
}
int main()
{
int a = 10;
int b = 20;
swap_1(a, b); //值传递 a=10 b=20
cout << "a=" << a << endl;
cout << "b=" << b << endl;
int c = 10;
int d = 20;
swap_2(&c, &d); //址传递 c=20 d=10
cout << "c=" << c << endl;
cout << "d=" << d << endl;
int e = 10;
int f = 20;
swap_3(e,f); //引用传递 e=20 f=10
cout << "e=" << e << endl;
cout << "f=" << f << endl;
//int& k = 100;不允许
const int& k = 100;//编译优化成int tmp=100 ;int &k=tmp;
system("pause");
return 0;
}