打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
C/C++编程笔记:C++中的引用!(含引用和指针的对比)

当将变量声明为引用时,它将成为现有变量的替代名称。通过在声明中添加“&”,可以将变量声明为引用。 

C++:

输出: x = 20 ref= 30

应用范围: 

修改函数中传递的参数:如果函数收到对变量的引用,则可以修改变量的值。例如,以下程序变量使用引用进行交换。 

C++:

1.避免 复制大型结构:想象一个必须接收大型对象的函数。如果我们通过它而没有引用,则会创建它的新副本,这会浪费CPU时间和内存。我们可以使用引用来避免这种情况。

C++:

2.在“对于每个循环”中修改所有对象:我们可以在“对每个循环”中使用引用来修改所有元素 

C++:

3.对于每个循环,避免 对象复制:当对象较大时,我们可以在每个循环中使用引用来避免单个对象的复制。  

C++:

参考与指针:

引用和指针都可以用于更改另一个函数内部的一个函数的局部变量。当作为参数传递给函数或从函数返回时,它们都还可以用于保存大对象的副本,以提高效率。尽管有上述相似之处,引用和指针之间还是存在以下差异。

1.可以将指针声明为void,但是引用永远不能为void。例如

整数a = 10;void * aa =&a;//有效无效

&ar = a; //无效

2.指针变量具有n级/多级间接寻址,即单指针,双指针,三指针。而参考变量仅具有一个/单个间接级别。以下代码揭示了上述要点:  

 引用的功能不如指针

1)创建引用后,以后就不能再引用其他对象了;它无法重新放置。这通常是通过指针完成的。 

2)引用不能为NULL。指针通常被设置为NULL,以指示它们没有指向任何有效的对象。 

3)引用必须在声明时进行初始化。指针没有这种限制

由于上述限制,C ++中的引用不能用于实现链接列表,树等数据结构。在Java中,引用没有上述限制,可以用于实现所有数据结构。Java中引用更强大是Java不需要指针的主要原因。

更安全,更易于使用: 

1)更安全:由于必须先初始化引用,所以不太可能存在诸如野指针之类的野引用。仍然有一些引用不能引用有效位置

2)易于使用:引用不需要解引用运算符即可访问该值。它们可以像普通变量一样使用。仅在声明时才需要“&”运算符。同样,可以使用点运算符('。')访问对象引用的成员,这与需要箭头运算符(->)访问成员的指针不同。

结合上述原因,在诸如复制构造函数参数之类的地方很少有不能使用指针的地方。必须使用引用在复制构造函数中传递参数。同样,必须使用引用来重载某些运算符,例如++。

希望对你有帮助!

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
C++编程准则
C++_指针悬挂和赋值操作符的重载
这两道题不会?你敢说你精通c语言
MQL5 自动交易编程语言自学教程(第四期)
C/C++语言精华《指针》
C++基础概念
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服