引用是C++里面有C里面没有的,它们都能间接地指代其他对象,但引用比指针更安全
区别:
1.存在空指针(可以不用初始化,不指向任一对象),但不存在空引用(必须初始化),引用总是要指代一个对象,所以使用引用比指针更高效,指针在使用前得检查其是否有效(野指针)。
2.指针可以重新被赋值指向另一个对象,但引用总是指向其初始化指向的对象。
使用指针的情况:
1.有可能不指向任何对象,这种情况下可置为空;
2.在不同的情况需要指向不同的对象。
其他情况应使用引用,更安全更高效,总是指向一个对象不变。
参考《more effective C++》
未初始化的指针的值是随机的。使用未初始化的指针会导致各种问题。定义指针时即使不指向任何东西,也应该赋值为空指针。