2 引用
2.1 引用的基本使用
作用:给变量起别名
语法:数据类型 &别名 = 原名
int a = 10;
int &b = a;
b = 100;
cout <<"a = " << a<< endl;
cout <<"b = " << b<< endl;
2.2 引用注意事项
引用必须初始化,且不能更改
int a = 10;
int b = 5;
int &c = a;
c = b;//这里不是修改引用,而是赋值,也就是让a的值变为5。
2.3 引用做函数参数
函数传参时,可以传入引用。 简化指针,修改实参。
void swap(int &a, int &b)
{
int t = a;
a = b;
b = t;
}
...
a = 1;
b = 2;
swap(a,b);
2.4 引用做函数的返回值
不要返回局部变量引用。(局部变量在栈里,会被编译器回收) 函数的调用可以作为左值:
int & test0() {
static a = 10;
return a;
}
...
int &ref = test0();
test0() = 1000;
2.5 引用的本质
引用的本质是一个指针常量。 这也解释了引用为什么不能更改。
int a = 10;
int &ref = a;//相当于 int* const ref = &a;
2.6 常量引用
修饰形参,防止误修改。
void showValue(const int &a) {
cout<<"a="<< a << endl;
}
int & ref = 10 //错误,引用需要一个合法内存空间
const int & ref = 10; //正确,编译器会优化为:
//int temp = 10; const int & ref = temp;
标签:10,const,test0,int,核心,C++,引用,ref
From: https://blog.51cto.com/pigeon/5785644