引用和指针的优势
函数调用中,以值作为参数或者返回值类型,在传参和返回值期间,函数不会直接传递实参或者将变量本身直接返回,而是传递实参或者返回变量的一份拷贝.
因此用值作为参数或者返回值类型,效率是非常低下的,尤其是当参数或者返回值类型非常大时,效率就更低.
指针和引用不需要对要传递的参数或返回的变量进行拷贝,因此指针和引用的效率是相对较高的,由于引用在底层是被当做指针来处理的,所以二者的效率是接近的.那么二者有什么区别呢?
引用和指针的区别
①引用在定义是必须初始化,指针没有要求
②引用在初始化引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型实体
③没有NULL引用,但有NULL指着
④在sizeof中含义不同:引用结果为引用类型的大小,但指针始终是地址空间所占字节个数(32位平台下占4个字节)
⑤引用自加即引用的实体增加1,指针自加即指针向后偏移一个类型的大小
⑥有多级指针,但是没有多级引用
⑦访问实体方式不同,指针需要显示解引用,引用编译器自己处理
⑧引用比指针使用起来更安全