C++中与引用相关的一些问题

指针类型提供了一个变量间接访问另一个变量的能力。利用指针类型,我们可以访问动态变量,提高函数参数传递的效率。但是,指针也会带来一些问题。另外,通过指针运算,可以提高对数组元素访问的灵活性和效率。但是,指针也会带来一些问题,如它会使得程序的可靠性下降以及书写比较烦琐等。

 为了获得指针的一些效果,同时又要避免指针的一些问题,C++提供了另一种类型——引用。它也能够通过一个变量访问另一个变量,而且它比指针类型要抽象和安全一些。

*定义和使用
在C++中,可以用引用类型来定义一个变量,该变量与另一个变量占用相同的内存空间(相当于为另一个变量取了个别名),如下面的程序中,y没有自己的内存空间,而是共享x的内存空间。
int x=0;
int& y=x; //定义变量x的引用
cout<<x<<y; //输出结果为00
x=1;
cout<<y; //输出结果为1
y=2;
cout<<x; //输出结果为2

*引用作为函数的参数类型
在“C++中与指针相关的一些问题”中我用经典的swap函数说明了用指针作为函数的参数类型,下面再次用引用来实现。
void swap(int& x,int& y){int t=x;x=y;y=t;}
这样看起来似乎比指针更为简洁。

*引用作为函数的返回类型
用引用作为函数的返回值,可以避开函数返回值按值传递的问题,并且由于引用具有左值,所以还可以通过函数返回的引用来修改该返回值(当然用指针作为返回值也能实现该功能)

*总结(引用与函数的比较)
(1)引用类型和指针类型都可以实现通过一个变量访问另一个变量,但访问的语法形式不同;引用是采用直接访问形式,而指针则需要采用间接访问形式。
(2)除了在定义时指定被引用变量外,引用类型变量不能再引用其他变量;而指针类型变量定义后可指向其它同类型变量,因此,引用类型比指针类型要安全。
(3)在作为函数参数类型时,引用类型参数的实参是一个参数的名字,而指针类型参数的实参是一个变量的地址。

 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值