引用和指针,谁更安全,谁更高效?


& 在C中表示取地址符,在C++中表示引用

在声明一个引用变量时,必须将其初始化,并且不允许在函数执行期间再将其作为其他变量的引用。

那么引用和指针谁更安全,谁更高效呢?

首先我们要认识到,使用引用传递函数的参数时,在内存中并没有实参的副本,而是对实参直接操作。当使用传值调用时,需要给形参分配存储单元,形参变量是实参的副本,如果传递的是对象,还要调用拷贝构造函数。因此传引用调用要比传值调用效率更高,占空间更少。

使用指针作为函数的参数也可以达到引用同样的效果,但是在被调函数中同样要给形参分配存储单元,在这个意义上说,引用的效率更高。而且频繁使用“*指针变量名”的形式进行运算容易产生错误而且可阅读性较差。因此引用是个更安全高效的选择。

常引用

如果既要提高程序的效率,又要使传递给函数的数据不在函数里被改变,可以使用常引用。const typename & 引用名 = 变量名

用这种方式声明的引用,不能通过引用对目标变量的值进行修改。保证了引用的安全性。

引用在可以被定义为const的情况下,应当尽量被定义成const。


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM