1.1引用的基本使用
作用:给变量起别名
语法:数据类型 &别名=原名
#include<iostream>
using namespace std;
int main() {
//引用基本语法
//数据类型 &别名 = 原名
int a = 10;
//创建引用
int& b = a;
cout << "a=" << a << endl;
cout << "b=" << b << endl;
b = 100;//操作别名或者原名都是操作同一块内存
cout << "a=" << a << endl;
cout << "b=" << b << endl;
system("pause");
}
1.2引用注意事项
引用必须初始化
引用初始化以后不可改变
#include<iostream>
using namespace std;
int main() {
int a = 10;
int b = 20;
//int &c;//错误,引用必须要初始化
int& c = a;//一旦初始化以后,就不可以更改
c = b;//这是赋值操作,不是更改引用
cout << "a=" << a << endl;
cout << "b=" << b << endl;
cout << "c=" << c << endl;
system("pause");
}
1.3 引用做函数参数
作用:函数传参时,可以利用引用的技术让形参修饰实参
优点:可以简化指针修改实参
#include<iostream>
using namespace std;
//交换函数
//1.值传递
void mySwap01(int a, int b)
{
int temp = a;
a = b;
b = temp;
}
//2.地址传递
void mySwap02(int*a, int* b)
{
int temp = *a;//*a是解引用操作
*a = *b;
*b = temp;
}
//3.引用传递
void mySwap03(int &a, int &b)//&a是实参中a的别名,&b是实参中b的别名
{
int temp = a;
a = b;
b = temp;
}
int main() {
int a = 10;
int b = 20;
//mySwap01(a, b);//值传递,形参不会修饰实参
//mySwap02(&a, &b);//地址传递,形参会修饰实参
mySwap03(a, b);//引用传递,形参会修饰实参的
cout << "a=" << a << endl;
cout << "b=" << b << endl;
system("pause");
}
总结:通过引用参数产生的效果和按地址传递是一样的,引用的语法更简单清楚。
1.4引用做函数返回值
作用:引用是可以作为函数的返回值存在的
注意:不要返回局部变量引用
用法:函数调用作为左值