今天看到C++指针,就顺便温习下 指针和引用的区别。。
1. 首先就是 引用必须被初始化,而指针不必。所以如果你使用一个变量并让它指向一个对象,但是该变量可能在某些时候不指向任何对象,这是应该把变量声明为指针;相反如果你再设计的时候就确定使用的变量任何时候都不允许为空,那么应该将变量声明为引用。由于引用不存在指向空值,因此引用的代码效率要比指针高。
string& s;//错误,引用必须被初始化
string str = "123456";
string& s = str;//让s指向str变量
2. 合法性区别:使用引用之前不需要测试其合法性,而指针总是被测试,防止其为空。
3. 修改区别:引用初始化以后不能修改,指针则可以修改其指向的对象。
4. 应用情况:由以上三点大致可以得知一般以下情况应该使用指针:
(1)当有可能存在不指向任何对象的变量时,使用指针变量。
(2)当在不同时刻指向不同对象时,使用指针变量。