引用

引用(Reference)是 C++ 相对于C语言的又一个扩充。引用可以看做是数据的一个别名,通过这个别名和原来的名字都能够找到这份数据。引用类似于 Windows 中的快捷方式,一个可执行程序可以有多个快捷方式,通过这些快捷方式和可执行程序本身都能够运行程序;引用还类似于人的绰号(笔名),使用绰号(笔名)和本名都能表示一个人。

定义方式:
引用的定义方式类似于指针,只是用& 取代了* ,语法格式为:
type &name = data;
type 是被引用的数据的类型
name 是引用的名称
data 是被引用的数据。
注意:
(1) 引用必须在定义的同时初始化 ,并且以后也要 从一而终 ,不能再引用其它数据,这有点类似于常量(const 变量)。(与指针的区别)
(2)引用在定义时需要添加& ,在使用时不能添加& ,使用时添加& 表示取地址。

常引用:
如果不希望通过引用来修改原始的数据,那么可以在定义时添加 const限制,形式为:
const type &name = value;
也可以是:
type const &name = value;
这种引用方式为常引用。

引用作为函数参数:
在定义或声明函数时,我们可以将函数的形参指定为引用的形式,这样在调用函数时就会将实参和形参绑定在一起,让它们都指代同一份数据。
如此一来,如果在函数体中修改了形参的数据,那么实参的数据也会被修改,从而拥有“在函数内部影响函数外部数据”的效果。
例如: //按引用传参
void swap3(int &a, int &b)
{
int temp = a;
a = b;
b = temp;
}
//直接传递参数内容
void swap1(int a, int b)
/传递指针
void swap2(int *p1, int *p2)

只有引用没有产生临时变量。

引用作为函数返回值:
在将引用作为函数返回值时应该注意一个小问题,就是 不能返回局部数据 (例如局部变量、局部对象、局部数组等)的引用,因为当函数调用完成后局部数据就会被销毁,有可能在下次使用时数据就不存在了,C++ 编译器检测到该行为时也会给出警告。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值