#include<iostream>
using namespace std;
//交换函数 三种方式 1.值传递 2.引用传递 3.地址传递
void Swap01(int a, int b) {
//形参被调用时分配地址 调用结束后释放空间 将main函数的实参传入后 只是进行赋值语句
//并没有改变内存指向
int temp;
temp=a;
a = b;
b = temp;
}
void Swap02(int *a,int *b) {
//*a和*b表示获取a和b对应地址上的数据
int temp;
temp = *a;
*a = *b;
*b = temp;
}
void Swap03(int &a,int &b) {
int temp;
temp = a;
a = b;
b = temp;
}
int main() {
int a = 10;
int& b = a;
b = 20;
cout << a<<endl;
int c = 30;
b = c;
//此处是赋值操作 并非更改引用
cout << "a= " << a << endl;
cout << "b= " << b<< endl;
cout << "c= " << c << endl;
int c1 = 10;
int d = 20;
//&取地址符
Swap02(&c1, &d);
cout << c1 << endl;
cout << d << endl;
int e = 40;
int f = 50;
//&a和&b就是e和f的别名
Swap03(e, f);
cout << e << endl;
cout << f<< endl;
return 0;
}
引用:给数据起别名
格式 :数据类型 &别名=原名
此时原名和别名都指向同一块地址 改一个 另一个也会改动
引用必须初始化,在初始化以后引用不可以改变
引用开始时必须告诉原名是谁 一旦初始化之后 不可以更改