区别pointer和references
来源:互联网 发布:算法设计与分析pdf下载 编辑:程序博客网 时间:2024/06/05 03:31
《more effective C++》读书笔记
指针pointer与引用reference
1 没有所谓的null reference。一个reference必须总代表某个对象
char *pc=0; //正确,代表空指针
char & rc=*pc; //语法正确,但使用错误,使用了空引用。
2 引用一定代表某个对象,C++要求引用必须有初值
string & rs; //错误
string s("abcede");
string &rs=s;
指针没有这样的限制
string * ps;
3 指针可以被重新赋值,指向另一个对象;引用却总是指向(代表)它最初获得的那个对象。
string s1("1111111");
string s2("2222222");
string & rs=s1;
string *ps=&s1;
rs=s2; //rs仍代表s1,只是s1的值变成了"222222222"
ps=&s2; //ps指向了s2,而s1的内容并没有变
4 实现某些操作符的时候,operator[]返回一个应用
vector<int > v(10);
v[5]=10;
5 形参的应用与不引用
不引用会产生不必要的拷贝,而且在函数内的修改不会影响外部的实参,
引用会避免拷贝,但内部的修改,会直接影响外部的实参。如果你的确不想修改外部的值,请用const引用,避免不小心修改了。
一般来说函数的参数只要非内部类型:int char等等,都应该用引用,避免不必要的拷贝。
总结:
当你知道你需要指向某个东西,而且绝不会改变指向其他东西,或是当你实现一个操作符而其语法无法由指针达成。
其他时候选用指针。
- 区别pointer和references
- 区别pointers和references
- pointer and references
- Add Service References 和 Add Web References的区别
- Referances 和 pointer的区别
- reference和pointer的区别
- 1.仔细区别POINTERS 和 REFERENCES
- 条款1:仔细区别Pointers和References
- 条款1:仔细区别pointers和references
- float (pointer)[4]和float pointer[4]的区别
- C++中Reference和Pointer的区别
- 指针(Pointer)和引用(Reference)的区别
- Create groups和Create folder references的区别
- Create groups和Create folder references的区别
- 添加web引用和添加服务引用有什么区别?Add Service References 和 Add Web References 有啥区别?
- Pointer 和 @
- const pointer 和pointer const
- More Effective C++ 读书笔记 之 区别pointer和reference
- 从招式与内功谈起——设计模式概述(二)
- Mysql 连接JOIN的使用
- Java 序列化
- 富文本属性 -- NSMutableParagraphStyle与NSParagraphStyle的使用
- 关于在activity中使用popuwindow关闭后引起崩溃的解决方法。
- 区别pointer和references
- openssl堆栈
- openssl内存分配
- 10分钟理解Android数据库的创建与使用(附详解和示例代码)
- 数字签名图文并茂
- Arranging Coins
- 游戏开发从需求出发,注重新趋势变化发展
- MySQL NULL 值处理
- markdown数学公式