引用,只是实现了两个对象的绑定,并不会重新创建变量或获取内存控件。
引用的简单定义形式:
int true_value;
int &ref_value = true_value;
引用的注意点:
1.引用在声明时,就必须指定其绑定对象
2.引用在声明之后,不能够重新绑定引用对象
例如: ref_value = value_two 将是错误的
3.引用不可以绑定到字面值常量
例如: int &ref_value = 10; 将时错误的
但是可以通过声明 const 来实现常量引用:
const int &ref_value = 10;这样就是正确的。
同样的,对于一个 const对象,它的引用也必须时const 的
例如:
const int x=10;
int &y=x; //这样是误的
const int &y = x; //这样时正确的
引用在函数中的作用
引用最主要的作用是在函数中,实现对实参的引用传递。
例如:
void swap(int x,int y)
{
int temp;
temp=x;
x=y;
y=temp;
}
void ref_swap(&int x,&int y)
{
int temp;
temp=x;
x=y;
y=temp;
}
两个函数,swap并不能真正交换两个变量的值,而 ref_swap 则可以交换两个变量的值。
引用在迭代器的for循环中的作用
string str = "abcdef";
for(auto s: str){
s='a';
}
cout<<str<<endl; //输出结果: abcdef
for(auto &s:str){
s='a';
}
cout<<str<<endl; <span style="font-family: Arial, Helvetica, sans-serif;">//输出结果: aaaaaa</span>
也就是说,在迭代器的for循环中,想要改变容器中的值,就需要使用 & 引用的方式。