帮你弄清引用和指针相同点与区别
来源:互联网 发布:js null 与 undefined 编辑:程序博客网 时间:2024/04/19 20:27
下面简短的说了说指针的和引用的共同点和不同点,希望对需要的朋友会有一点点帮助。
引用和指针
★ 相同点:
1. 都是地址的概念;
指针指向一块内存,它的内容是所指内存的地址;引用是某块内存的别名。
★ 区别:
1. 指针是一个实体,而引用仅是个别名;
2. 引用使用时无需解引用(*),指针需要解引用;
3. 引用只能在定义时被初始化一次,之后不可变;指针可变;
引用“从一而终” ^_^
4. 引用没有 const,指针有 const,const 的指针不可变;
5. 引用不能为空,指针可以为空;
6. “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;
typeid(T) == typeid(T&) 恒为真,sizeof(T) == sizeof(T&) 恒为真,
但是当引用作为成员时,其占用空间与指针相同(没找到标准的规定)。
7. 指针和引用的自增(++)运算意义不一样;
★ 联系
1. 引用在语言内部用指针实现(如何实现?)。
2. 对一般应用而言,把引用理解为指针,不会犯严重语义错误。引用是操作受限了的指针
最后在把引用给个总结吧
(1)在引用的使用中,单纯给某个变量取个别名是毫无意义的,引用的目的主要用于在函数参数传递中,解决大块数据或对象的传递效率和空间不如意的问题。
(2)用引用传递函数的参数,能保证参数传递中不产生副本,提高传递的效率,且通过const的使用,保证了引用传递的安全性。
(3)引用与指针的区别是,指针通过某个指针变量指向一个对象后,对它所指向的变量间接操作。程序中使用指针,程序的可读性差;而引用本身就是目标变量的别名,对引用的操作就是对目标变量的操作。
(4)使用引用的时机。流操作符<<和>>、赋值操作符=的返回值、拷贝构造函数的参数、赋值操作符=的参数、其它情况都推荐使用引用。
如果对你有了些帮助就多多支持,如果没时间回帖就在心里面支持支持吧
===================================================================
- 帮你弄清引用和指针相同点与区别
- 指针和引用的区别与相同点
- 指针和引用的相同点和不同点
- C++中指针和引用的相同点和不同点
- storage与cookie的相同点和区别
- 指针和引用的联系与区别
- 指针和引用的联系与区别
- 指针和引用的联系与区别
- 指针和引用的联系与区别
- 指针和引用的联系与区别
- 指针和引用的联系与区别
- 指针和引用的联系与区别
- 指针和引用的联系与区别
- 指针和引用的联系与区别
- 指针和引用的联系与区别
- 指针与引用的区别和联系
- 指针和引用的联系与区别
- 指针和引用的联系与区别
- 关于通过Date.getTime()得到1970年01月1日0点零分问题验证
- _T _TEXT的含义
- AWT的标准布局管理器
- 用Far制作chm的简易教程
- Javascript经典正则表达式
- 帮你弄清引用和指针相同点与区别
- PXA3xx 的一些缩略词
- VC++学习建议
- C++经典书籍解读
- "谁养鱼"(爱因斯坦所出的一道推理题)
- 重构了MTAPI 的event loop
- 看到的一份不错的介绍“堆和栈的区别”的资料 [转]
- 把FleaPHP的组件搬进cakePHP中
- 在企业中管理Mac的恶梦