1.引用基本使用
作用:给变量起别名
语法:数据类型 &别名 = 原名
2.引用注意事项
①引用必须初始化
②引用再初始后,不可改变
int main()
{
int a = 10;
int b = 20;
//int &c //错误,引用必须初始化
int &c = a; //一旦初始化后,就不可以更改
c = b; //赋值操作,非更改引用
//注:输出 a、b、c 值都为20
count << "a = " << a << endl;
count << "b = " << b << endl;
count << "c = " << c << endl;
system("pause");
return 0;
}
3.引用做函数参数
作用:函数传参时,可以利用引用的技术让形参修饰实参
优点:可以简化指针修改实参
//1.值传递
void swapA(int a,int b)
{
int tmp = a;
a = b;
b = tmp;
}
//2.地址传递
void swapB(int *a,int *b)
{
int tmp = *a;
*a = *b;
*b = tmp;
}
//3.引用传递
void swapC(int &a,int &b)
{
int tmp = a;
a = b;
b = tmp;
}
int main()
{
int a = 10;
int b = 20;
//swapA(a,b); //值传递,形参不会修饰实参
//swapB(&a,&b); //地址传递,形参会修饰实参
swapC(a,b); //引用传递,形参会修饰实参
system("pause");
return 0;
}
4.引用做函数的返回值
作用:引用时可以作为函数的返回值存在
注意:不要返回局部变量引用
用法:函数调用作为左值(返回静态变量引用,再赋值后静态变量被修改)
int& test()
{
static int a = 20;
return a;
}
int main()
{
int& ref = test();
cout << "ref = " << ref << endl; //ref = 20
test() = 10086; //如果函数返回值时引用,这个函数调用可以作为左值
cout << "ref = " << ref << endl; //ref = 10086
}
5.引用的本质
本质:在C++内部实现是一个指针常量
6.常量引用
作用:常量引用主要用来修饰形参,防止误操作
在函数形参列表中,可以加const修饰形参,防止形参改变实参(只读)