C++中的引用与指针的区别

指向不同类型的指针的区别在于指针类型可以知道编译器解释某个特定地址(指针指向的地址)中的内存内容及大小,而void*指针则只表示一个内存地址,编译器不能通过该指针所指向对象的类型和大小,因此想要通过void*指针操作对象必须进行类型转化。

★ 相同点:

1. 都是地址的概念;

指针指向一块内存,它的内容是所指内存的地址;

引用是某块内存的别名。

★ 区别:

1. 指针是一个实体,而引用仅是个别名;

2. 引用使用时无需解引用(*),指针需要解引用;

3. 引用只能在定义时被初始化一次,之后不可变;指针可变;

引用“从一而终” ^_^

4. 引用没有 const,指针有 const,const 的指针不可变;

5. 引用不能为空,指针可以为空;

6. “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身(所指向的变量或对象的地址)的大小;

typeid(T) == typeid(T&) 恒为真,sizeof(T) == sizeof(T&) 恒为真,但是当引用作为类成员名称时,其占用空间与指针相同4个字节(没找到标准的规定)。

7. 指针和引用的自增(++)运算意义不一样;

转载于:https://www.cnblogs.com/song4/p/4189041.html

C++中的引用与指针的区别相关推荐

  1. C++ 中的引用 和指针的区别

    引用:& a 不占内存,和被应用的对象使用的是同一块内存 指针:int * p, 正常情况下占4个字节,是一个指针变量 类型,和被指向的对象使用单独的两块内存空间 转载于:https://bl ...

  2. C++中引用与指针的区别(详细介绍)

    转载:http://www.cnblogs.com/tracylee/archive/2012/12/04/2801519.html C++中的引用与指针的区别 指向不同类型的指针的区别在于指针类型可 ...

  3. 浅谈C++中引用和指针的区别

    之前我们介绍了什么是引用,错过的小伙伴们可以戳这里 ↓ https://blog.csdn.net/Sun_Life_/article/details/89304920 既然引用底层是用指针形式实现的 ...

  4. 引用和指针的区别?传引用比传指针安全,为什么?如果我使用常量指针难道不行吗?

    引用和指针的区别 (1) 引用在创建的同时必须初始化,即引用到一个有效的对象:而指针在定义的时候不必初始化,可以在定义后面的任何地方重新赋值. (2) 不存在NULL引用,引用必须与合法的存储单元关联 ...

  5. 2-5:C++快速入门之引用,引用和指针的区别

    文章目录 (1)引用的概念 (2)引用的特点 (3)常引用 (4)引用的应用场景 A:做参数 B:做返回值 (5)引用和指针 在第一次学习C语言指针时,许多教材上都会给出一个交换两个变量值的例子,开始 ...

  6. 从编译器角度分析C语言中数组名和指针的区别

    从编译器角度分析C语言中数组名和指针的区别 数组名和指针是两个往往很容易让人们混淆的概念,很多人以为数组名就是一个指针,也有很多人知道数组名不同于指针但是仅知道数组名的值不能像指针一样改变. 例如你可 ...

  7. C++ 引用详解(引用的特点,引用与指针的区别,引用的其他使用)

    目录 引用 一.引入 二.C++中较为麻烦的运算符 三.引用的定义 四.引用的特点 五.对比指针与引用 六.引用与指针的区别(重点) 1.语法层面的区别 2.汇编层面的区别 七.引用的其他使用 引用 ...

  8. 【C语言】引用和指针的区别?

    首先解释在C语言中,什么是引用:  1.引用概念 引用是别名,必须在声明的时候初始化.即:是指一个已定义变量的别名.(一个内存空间,有两个名字都可以操作) 引用:在函数调用时,是变量的别名,不可以单独 ...

  9. c++引用与指针的区别

    ★ 相同点: 1. 都是地址的概念: 指针指向一块内存,它的内容是所指内存的地址:引用是某块内存的别名. ★ 区别: 1. 指针是一个实体,而引用仅是个别名: 2. 引用使用时无需解引用(*),指针需 ...

最新文章

  1. 万字长文!DeepMind科学家总结2021年的15个高能研究
  2. 单机 搭建kafka集群 本地_单机快速搭建多节点kafka集群
  3. ListView 排序
  4. C语言再学习 -- 位、字节、字、字长、字元的关系
  5. 计算机操作系统还能这样玩?这一篇计算机操作系统的总结为你保驾护航(零风险、高质量、万字长文、建议收藏)
  6. bzoj1055 [HAOI2008]玩具取名 区间DP
  7. wps出现安装installer_为什么不能安装WPS
  8. 8.2 css3 新增标签 盒子模型 长度单位 颜色 渐变 径像渐变
  9. Create new module “HelloWorld” – in Magento
  10. Android之eclipse简单NDK入门
  11. 8.Linux性能诊断 --- 浅谈基于数据分析的网络态势感知
  12. centos普通用户和root用户之间相互切换
  13. OneNote2013打开共享
  14. Java的依赖对象是什么意思_面向对象编程依赖注入详解
  15. 解决IOS微信SDK初始化失败
  16. 申请POSITIVESSL ev证书需要了解哪些
  17. 三个经典故事告诉你:什么叫契约精神
  18. 省心!2021精选APP macOS装机必备清单来了
  19. [HAL]STM32F1光照度测量BH1750 串口输出
  20. Linux中的多路IO转接,转载

热门文章

  1. FreeAnchor:令anchor自由匹配标签的策略
  2. getvod.php_音视频播放_PHP SDK_服务端SDK_视频点播 - 阿里云
  3. MySQL如何生成idf文件_【IDF2010】释放三大特性 至强7500为MySQL量身定做
  4. cad在哪里设置图幅大小_CAD教程之如何设置十字光标大小及颜色
  5. Android开发入门一之Android应用程序架构详解
  6. css设置元素继承父元素宽度_详解CSS中的百分比的应用
  7. 关于Markdown编辑器添加使用锚点的问题
  8. HDU 2277 Change the ball
  9. IOS之Objective-C学习 ARC下的单例模式
  10. 邻接矩阵有向图的介绍