计算机系统应用教程网站

网站首页 > 技术文章 正文

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

btikc 2024-09-12 12:06:43 技术文章 11 ℃ 0 评论


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

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

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

希望对你有帮助!

另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!笔者这里或许可以帮到你~

编程学习书籍分享:


编程学习视频分享:

分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

C语言C++编程学习交流圈子,点击下方【了解更多】获取更多资料帮助你学习成长哦~

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表