指针和引用看起来很不一样,指针使用*和->操作符,引用则使用.操作符,但是它们似乎做的是类似的事情。
首先,需求确认的是,C++用没有空引用(null reference),一个引用必须总代表某个对象,所以既不能指向null,也不能声明变量时不赋初值,也不能在使用过程中改变指向(其实用引用更贴切)值。如果不能满足上述条件,可以考虑使用指针。
使用引用可能比指针更富效率,因为引用不需要检查是否为空的情况。
还有一些情况需要使用引用,例如实现某些操作符的时候。最常见的情况就是[],这个操作符需要返回某种“能够被当做assignment赋值对象”的东西。
例如:vector<int> v(10);
v[5]=10;//这样是引用,如果是指针的话应该是*v[5]=10;
首先,需求确认的是,C++用没有空引用(null reference),一个引用必须总代表某个对象,所以既不能指向null,也不能声明变量时不赋初值,也不能在使用过程中改变指向(其实用引用更贴切)值。如果不能满足上述条件,可以考虑使用指针。
使用引用可能比指针更富效率,因为引用不需要检查是否为空的情况。
还有一些情况需要使用引用,例如实现某些操作符的时候。最常见的情况就是[],这个操作符需要返回某种“能够被当做assignment赋值对象”的东西。
例如:vector<int> v(10);
v[5]=10;//这样是引用,如果是指针的话应该是*v[5]=10;