引用作用:给变量起别名
语法:
数据类型 &别名=原名
#include<iostream>
using namespace std;
int main()
{
//引用的语法
int b = 10;
int &a = b;
cout << b << endl;
cout << a << endl;
system("pause");
return 0;
}
运行结果:
注意事项
1.引用必须初始化
2.初始化以后,不可以改变
引用做函数参数
作用:函数传参时,可以利用引用的技术让形参改变实参
#include<iostream>
using namespace std;
int main()
{
void exchange1(int a, int b);
void exchange2(int *a, int *b);
void exchange3(int &a, int &b);
int k, h;
cout << "请输入数1" << endl;
cin >> k;
cout << "请输入数2" << endl;
cin >> h;
//值传递
exchange1(k, h);
cout << "值传递以后的数1和数2分别为:" << k <<" "<< h << endl;
//地址传递
exchange2(&k, &h);
cout << "地址传递以后的数1和数2分别为:" << k << " " << h << endl;
//引用传递
exchange3(k, h);
cout << "引用传递以后的数1和数2分别为:" << k << " " << h << endl;
system("pause");
return 0;
}
//交换函数
//值传递
void exchange1(int a,int b){
int temp;
temp = a;
a = b;
b = temp;
}
//地址传递
void exchange2(int *a, int *b){
int temp=0;
temp = * a;
*a = *b;
*b = temp;
}
//引用传递
void exchange3(int &a, int &b){
int temp = a;
a = b;
b = temp;
}
运行结果:
值传递,不会改变实参的值, 所以数1和数2为12 24
地址传递会改变实参的值,此时数1和数2为24 12
引用传递也会改变实参的值,此时数1和数2又变为12 24