引用的本质
- 引用就是给变量起别名,这块内存还有另外一个名字
- 引用的本质是c++内部实现的一个指针常量
int a = 10;
int &ref = a;//编译器自动转换为 int* const ref = &a;
所以引用定义时就要初始化
且const使指针的指向固定,所以一旦初始化后就不可更改
引用传递
void swap(int& a, int& b){
int temp = a;
a = b;
b = temp;
}
引用传递和地址传递一样,都会引起实参的改变
函数的调用可以作为左值
int& test(){
static int a = 10;
return a;
}
int main(){
int& ref = test();
test() = 1000;
cout<<ref<<endl;//这时ref会变成1000
return 0;
}
常量引用
void show(const int& val){
//val在函数里不可更改,这样就防止了误操作
}