一般说到谁和谁怎么样,要么说两者的相似点,要么两者的区别,这里我们也要说二者的区别和联系,同时,也不仅仅是区别和联系这么简单,因为你可能会发现在变量赋值,函数传参这两点还是有很多值得品一品的。

最直观的赋值方面的区别

首先我们先说二者的区别和联系。

(1)指针:指针是一个变量,只不过这个变量存储的是一个地址,指向内存的一个存储单元;而引用跟原来的变量实质上是同一个东西,只不过是原变量的一个别名而已。如:

int a=1;int *p=&a;

int a=1;int &b=a;

上面定义了一个整形变量和一个指针变量p,该指针变量指向a的存储单元,即p的值是a存储单元的地址。

而下面2句定义了一个整形变量a和这个整形a的引用b,事实上a和b是同一个东西,在内存占有同一个存储单

元。

(2)引用不可以为空,当被创建的时候,必须初始化,而指针可以是空值,可以在任何时候被初始化。

(3)可以有const指针,但是没有const引用;

(4)指针可以有多级,但是引用只能是一级(int **p;合法 而 int &&a是不合法的)

(5)指针的值可以为空,但是引用的值不能为NULL,并且引用在定义的时候必须初始化;

(6)指针的值在初始化后可以改变,即指向其它的存储单元,而引用在进行初始化后就不会再改变了。

(7)”sizeof引

C++: 21---引用和指针相关推荐

  1. 多维数组元素的下标引用与指针访问

    在这儿值介绍二维数组元素的访问方式,三维.四维--的与之类似. 先用一维数组的相关知识来抛砖 #define _CRT_SECURE_NO_WARNINGS 1 #include<stdio.h ...

  2. (4)风色从零单排《C++ Primer》 变量,引用,指针

    从零单排<C++ Primer> --(4)变量,引用,指针   变量的初始化 所谓变量的初始化,指在创建变量的同时给予值. 初始化方法: int units_sold = 0; int ...

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

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

  4. 同时用引用和指针 int *a;

    同时用引用和指针可以吗? 见到一个这样的声明 int *&a: 这是什么意思? a 是一个 指向 int* 的引用. 你可以了解一下右左法则,读复杂类型声明(当然,这个int*& a还 ...

  5. [C++再学习系列] 引用和指针

    下面是网上关于引用和指针区别的常见答案: 引用和指针有如下三种区别: 1 引用必须在声明时初始化,而指针不用: 2 NULL不能引用,而指针可指向NULL: 3 引用一旦声明,引用的对象不能改变(但对 ...

  6. C 引用和指针的区别

    指针和引用在C++中很常用,但是对于它们之间的区别很多初学者都不是太熟悉,下面来谈谈他们2者之间的区别和用法. 指针和引用的定义和性质区别: 指针:指针是一个变量,只不过这个变量存储的是一个地址,指向 ...

  7. 【C++ 语言】引用 ( 引用简介 | 指针常量 | 常量指针 | 常引用 | 引用参数 | 引用 指针 对比 )

    文章目录 I . 引用概念 II . 引用声明 III . 引用 地址 内存 分析 IV . 常引用 V . 引用作为参数 VI . 引用 与 指针 对比 I . 引用概念 C++ 对 C 扩充 : ...

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

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

  9. 引用与指针的异同-基础篇

    引用与指针的异同 1. 指针和引用的实质 同:都指向变量的内存地址 异:指针是地址变量:引用是地址常量 2. 指针和引用的内存分配情况 指针分配单独的内存空间,存放指向的变量的地址:引用仅是变量的别名 ...

  10. 面向对象简述--对象、引用、指针

    类和成员对象 [定义类] (1)两个重要概念: 类(class):类是某一批对象的抽象,可以把类理解成某一种概念. 对象(object,也被称为实例,instance):对象才是一个实际存在的实体. ...

最新文章

  1. 生态伙伴 | Worktile入驻飞书,助力企业轻松实现敏捷开发与协作
  2. 分享一个java对xml,excel,jdbc.properties,读写文件,读写图片等实现(1)
  3. 图解用Scientific Toolworks Understand分析Winpcap SDK 4.1.3自带示例
  4. 笔记-项目质量管理-编制质量管理计划的工具与技术
  5. html多重边框,中间空白,CSS实现多重边框
  6. 分布式 - 分布式系统的特点
  7. 151. Reverse Words in a String
  8. 疫情中的2021,云原生会走向哪里
  9. PyTorch 1.0 中文官方教程:使用PyTorch进行深度学习
  10. ubuntu命令行语法_Linux中重定向命令行的总结(ubuntu学习第三讲)
  11. 17. 信号量,共享内存和消息队列
  12. dubbox 2.8.4的配置和使用
  13. 学习软件测试必备的网站清单,建议收藏!
  14. Word不计算封面、目录页数将正文页码修改为第几页共几页的格式
  15. Git clone遇到502错误码
  16. 使用docx4j生成指定页码的带水印的空白word文档
  17. 查看SQL Server的实例名
  18. Vue.js高仿饿了么外卖App学习记录
  19. apache评分标准_危重病人APACHE II评分表(标准)
  20. c#split方法拆分为数据_C# 根据分隔符拆分Excel单元格数据

热门文章

  1. 中断请求request_irq
  2. WinCE Emulator使用介绍
  3. 设计模式C++实现(7)——装饰模式
  4. 简述TCP/IP四层体系结构及每层作用
  5. WINCE6.0 DM.EXE 激活驱动失败的原因之一
  6. 由于找不到openni2_Kinect开发教程八:OpenNI2显示深度、彩色及融合图像
  7. 【转】DICOM图像像素值(灰度值)转换为CT值
  8. ROS导航之参数配置和自适应蒙特卡罗定位
  9. angular8多选框实现点击整行任意位置<tr>就可以选中多选框
  10. ArrayList、HashMap、HashSet是线程不安全的,高并发下如何解决?