条款1:仔细区别Pointers和References
2015-01-26 11:34
162 查看
指针和引用看起来很不一样,指针使用*和->操作符,引用则使用.操作符,但是它们似乎做的是类似的事情。
首先,需求确认的是,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;
相关文章推荐
- More Effective C++ 条款1 仔细区别pointers和references
- 读书笔记《More Effective C++》条款1:仔细区别pointers和references
- 条款1:仔细区别pointers和references
- 1.仔细区别pointers 和 references
- 【M1】仔细区别pointers和references
- 1.仔细区别POINTERS 和 REFERENCES
- 条款一:仔细区别pointers 和 reference
- 基于指针pointers和引用references的区别分析
- 指针(pointers)和引用(references)区别
- 区别pointers和references
- linux tty pty pts tts概念 区别(转载别人的有空可以仔细看一下)
- Item 1:Distinguish between pointers and references.(More Effective C++)
- Why does C++ have both pointers and references?
- ACCESS VBE界面下菜单工具引用(References)和用CreateObject来创建对象的区别
- 条款24:当关乎效率时应该在map::operator[]和map-insert之间仔细选择
- 在 VS 类库项目中 Add Service References 和 Add Web References 的区别
- 条款1:仔细选择你的容器--C++容器概览及其适用情境
- c++ Pointers vs References
- Effective STL 条款1:仔细选择你的容器 (连载)
- c/C++编译的程序占用的内存以及More Effective C++ 条款1:指针与引用的区别