特性 | 引用 | 指针 |
初始化 | 不能为 null, 必须绑定到有效的对象 | 可以为 null ,不指向任何对象 |
重新绑定 | 不能重新绑定,一旦初始化后始终引用同一个对象 | 可以重新指向其他对象 |
内存占用 | 不占用额外内存,编译器通常将其优化为所引用的对象 | 占用额外内存(4字节或8字节) |
多级间接访问 | 不支持多级间接访问(不能使用引用的引用) | 支持多级间接访问(如指针的指针) |
数组相关 | 不能直接创建引用数组,但可以创建数组的引用,例如:int (&ref)[10] = arr; ref就是引用 | 可以创建指针数组,也可以创建指向数组的指针 |
安全性 | 更安全,不能为 null | 更灵活,但容易出错 |
底层实现 | 通常通过指针实现,但编译器会优化为所引用的对象。 | 直接存储目标对象的内存地址 |