C++_引用和指针的区别

引用和指针的优势

函数调用中,以值作为参数或者返回值类型,在传参和返回值期间,函数不会直接传递实参或者将变量本身直接返回,而是传递实参或者返回变量的一份拷贝.
因此用值作为参数或者返回值类型,效率是非常低下的,尤其是当参数或者返回值类型非常大时,效率就更低.
指针和引用不需要对要传递的参数或返回的变量进行拷贝,因此指针和引用的效率是相对较高的,由于引用在底层是被当做指针来处理的,所以二者的效率是接近的.那么二者有什么区别呢?

引用和指针的区别

①引用在定义是必须初始化,指针没有要求

②引用在初始化引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型实体

③没有NULL引用,但有NULL指着

④在sizeof中含义不同:引用结果为引用类型的大小,但指针始终是地址空间所占字节个数(32位平台下占4个字节)

⑤引用自加即引用的实体增加1,指针自加即指针向后偏移一个类型的大小

⑥有多级指针,但是没有多级引用

⑦访问实体方式不同,指针需要显示解引用,引用编译器自己处理

⑧引用比指针使用起来更安全

猜你喜欢

转载自blog.csdn.net/sss_0916/article/details/84317977
今日推荐