首页 > 代码库 > 条款1:仔细区别Pointers和References
条款1:仔细区别Pointers和References
指针和引用看起来很不一样,指针使用*和->操作符,引用则使用.操作符,但是它们似乎做的是类似的事情。
首先,需求确认的是,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;
条款1:仔细区别Pointers和References
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。