网站首页 > 技术教程 正文
当将变量声明为引用时,它将成为现有变量的替代名称。通过在声明中添加“&”,可以将变量声明为引用。
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++编程学习交流圈子,点击下方【了解更多】获取更多资料帮助你学习成长哦~
- 上一篇: c++的引用篇+指针 c 引用 指针
- 下一篇: 指针基本操作总结-解引用(*) 指针 用法
猜你喜欢
- 2024-10-04 C++核心准则编译边学-F.43 永远不要返回局部对象的指针或引用
- 2024-10-04 C++|虚函数多态机制的虚函数表及其指针的内存布局及手动引用
- 2024-10-04 C|指针分类与void指针的赋值、解引用与算术运算
- 2024-10-04 第5课,引用方式(锁定) 锁定引用值
- 2024-10-04 C++函数参数采用变量、引用和指针的区别
- 2024-10-04 Java String 手工引用指针 java中指针和引用
- 2024-10-04 C++核心准则C.145:通过指针或引用访问多态对象
- 2024-10-04 C\C++语言11|引用做为函数参数与返回值及与指针的区别
- 2024-10-04 Excel中的引用方式,看过之后你就懂
- 2024-10-04 C++,常量及sizeof函数,传值调用、指针调用和引用调用的区别
你 发表评论:
欢迎- 07-03收到“老板”QQ指令转账,厦门多名财务人员被骗!
- 07-03手机QQ红包BUG 发送不能被领取的口令红包方法
- 07-03“老板”发QQ指令要求转账 财务被骗42万……最后民警出手了!
- 07-03微信推广引流108式:利用QQ自动强制加好友代码从网站导流
- 07-03围观!有人发现QQ新玩法,一天进账近百万!
- 07-03“领导”QQ发来指令 她就转出16万元
- 07-03如何自定义样式营销qq在线咨询代码
- 07-03利用代码发QQ空消息 只闪动没有消息内容
- 最近发表
- 标签列表
-
- sd分区 (65)
- raid5数据恢复 (81)
- 地址转换 (73)
- 手机存储卡根目录 (55)
- tcp端口 (74)
- project server (59)
- 双击ctrl (55)
- 鼠标 单击变双击 (67)
- debugview (59)
- 字符动画 (65)
- flushdns (57)
- ps复制快捷键 (57)
- 清除系统垃圾代码 (58)
- web服务器的架设 (67)
- 16进制转换 (69)
- xclient (55)
- ps源文件 (67)
- filezilla server (59)
- 句柄无效 (56)
- word页眉页脚设置 (59)
- ansys实例 (56)
- 6 1 3固件 (59)
- sqlserver2000挂起 (59)
- vm虚拟主机 (55)
- config (61)
本文暂时没有评论,来添加一个吧(●'◡'●)