1.引用
:某一变量/实例的别名,对引用操作与对变量直接操作一样。
声明方法:类型 &引用名=目标变量名
例如:
int a;
int &b=a;
1.引用是变量的别名,引用本身不占内存,与目标变量共同指向目标变量的地址。
2.定义引用时,必须对qi
示例代码:
void fun(int &x){
cout<<"x="<<&x<<endl;
}
int main()
{
int a=3,b=4;
fun(a);
cout<<"s="<<&a<<endl;
return 0;
}
得到输出结果为:
x=0x7ffd50916838
s=0x7ffd50916838
由结果可知,实参a的内存地址与形参x的地址一样。//调用fun函数既执行int &x=a。
2.引用的应用
作为函数的参数:在内存中没有产生实参的副本,直接对实参操作;而使用一般变量作为函数的形则会给形参分配内存,形参是实参的副本;如果传递对象则还需要调用拷贝构造函数。因此,当参数传递数据较大时,用引用作为形参提高了效率和内存。
3.常引用:
const 类型 &引用名=目标变量;
作用:不能通过改变引用对目标变量进行修改,使目标变量具有安全性。
int aa=1;
const int &bb=aa;
cout<<"bb="<<bb<<endl;
aa=2;
cout<<"bb="<<bb<<endl;
bb=3;
cout<<"aa="<<aa<<endl;
结果:
bb=1
bb=2
error: assignment of read-only reference ‘bb’ bb=3;//修改常引用程序出错。
4.引用作为返回类型