const string 与const string&(C++中的引用)
来源:互联网 发布:vb skinsharp 编辑:程序博客网 时间:2024/05/20 09:25
不带的是一个常对象,带&是一个常引用,那么什么叫常引用呢?
在讲引用作为函数参数进行传递时,实质上传递的是实参本身,即传递进来的不是实参的一个拷贝,因此对形参的修改其实是对实参的修改,所以在用引用进行参数传递时,不仅节约时间,而且可以节约空间。参考链接“http://www.cnblogs.com/dolphin0520/archive/2011/04/03/2004869.html”
指针和引用的定义和性质区别:
指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;
引用:是跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:
int a=1;int *p=&a;
int a=1;int &b=a;
上面定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。
而下面2句定义了一个整形变量a和这个整形a的引用b,事实上a和b是同一个东西,在内存占有同一个存储单元。且引用一定指向一个对象,所以在C++里,引用应被初始化。
参考博客:http://blog.csdn.net/thisispan/article/details/7456169
★ 相同点:
1. 都是地址的概念;
指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。
★ 区别:
1. 指针是一个实体,而引用仅是个别名;
2. 引用使用时无需解引用(*),指针需要解引用;
3. 引用只能在定义时被初始化一次,之后不可变;指针可变;
引用“从一而终” ^_^
4. 引用没有 const,指针有 const,const 的指针不可变;
5. 引用不能为空,指针可以为空;
6. “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;
typeid(T) == typeid(T&) 恒为真,sizeof(T) == sizeof(T&) 恒为真,但是当引用作为成员时,其占用空间与指针相同(没找到标准的规定)。
7. 指针和引用的自增(++)运算意义不一样;
- const string 与const string&(C++中的引用)
- C++学习与实践(一):const引用与string类型
- C/C++中的char*,const char*,string之间转换
- c中的const与c++中的const
- C++中的引用与const
- C++_引用与const
- C++primer: 引用&与 const 引用
- [C++]char* const char* std::string区分
- 实战c++中的string系列--string与char*、const char *的转换(data() or c_str())
- string 转 const char
- string转const char *
- 引用与const(一)
- 引用与const(二)
- C与C++中的const
- 【c/c++】const引用
- C++(常)引用,const,指针引用
- C++中的const 引用
- const引用与非const引用
- JSP中的内置对象及其有效范围
- My New Game2
- Learning of LaTeX
- 【LaTeX】How To Add Page Numbers
- LNMP服务器创建虚拟主机以及子域名的办法
- const string 与const string&(C++中的引用)
- 运行时注解解析
- virtualenvwrapper创建独立的项目python环境
- jmeter内存溢出的解决方法
- Mybatis 如何 返回 List<String> 类型 或 List<Map<String,Object>>类型
- redis做缓存需要捕获异常
- android屏幕适配
- 线程的同步控制synchronized和lock的对比和区别
- 实例详解机器学习如何解决问题