引用
引用的基本语法
作用: 给变量起别名
语法: 数据类型 &别名 = 原名
//引用
int a = 10;
int &b = a;
cout << "a=" << a << endl;//a=10
cout << "b=" << b << endl;//b=10
b++;
a++;
cout << "a=" << a << endl;//a=12
cout << "b=" << b << endl;//b=12
引用的注意事项
1, 引用必须要初始化
2, 引用一旦初始化后就不可以更改
引用做函数参数
作用: 函数传参时, 可以利用引用的技术让形参修饰实参
有点: 可以简化指针修改实参
//引用传递
void swap(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
int main()
{
int a = 10,b = 20;
swap(a, b);
cout << "a=" << a << " b=" << b << endl;//运行结果为a=20.b=10
return 0;
}
引用做函数返回值
作用: 引用时可以作为函数的返回值存在的
注意: 不要返回局部变量引用
用法: 函数调用作为左值
//引用做函数返回值
//1,不要返回局部变量的引用
int& test01()
{
int a = 10;//局部变量
return a;
}
//返回静态变量引用
int& test02()
{
static int a = 10;
return a;
}
int main()
{
int &ref = test01();
cout << ref << endl;//第一次结果正确,因为编译器博保留
cout << ref << endl;//第二次结果乱码,因为a的内存已经释放
int &ref2 = test02();
cout << ref2 << endl;//=10
cout << ref2 << endl;//=10,static 改变了 a的储存位置
test02() = 1000;//函数调用可以作为左值
cout << ref2 << endl;//=1000
cout << ref2 << endl;//=1000
return 0;
}
引用的本质
本质: 引用的本质在C++内部实现是一个指针常量
常量引用
作用: 常量引用主要用来修饰形参,防止误操作
在函数形参列表中,可以加const修饰形参,防止形参改变实参;