引用和指针区别:
区别:
-
在语法概念上引用就是一个别名,没有独立空间,和其引用实体共用同一块空间
-
在底层实现上实际是有空间的,因为引用是按照指针方式来实现的
-
引用在定义时必须初始化,指针没有要求 int *ptr;可以 int&a;不可以
-
引用在初始化时引用一个实体后,就不能再引用其他实体,而指针可以在任何时候指向任何一个同类型实体
-
没有NULL引用,但有NULL指针
-
sizeof大小不一样,引用的大小为其引用类型的大小,指针的大小是固定的,不同编译器下不同
-
引用自加,其实体加1,指针自加就是指针向后偏移一个类型的大小
-
有多级指针,没有多级引用
-
访问实体方式不同,指针需要显式解引用,引用编译器自己处理
-
引用比指针使用起来相对更安全