博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
嵌入式100题(019):指针与引用的相同和区别;如何相互转换?
阅读量:4166 次
发布时间:2019-05-26

本文共 514 字,大约阅读时间需要 1 分钟。

指针与引用的相同和区别;如何相互转换?

相同

  • 都是地址的概念,指针指向某一内存、它的内容是所指内存的地址;引用则是某块内存的别名。
  • 从内存分配上看:两者都占内存,程序为指针会分配内存,一般是4个字节;而引用的本质是指针常量,指向对象不能变,但指向对象的值可以变。两者都是地址概念,所以本身都会占用内存。

区别

  • 指针是实体,而引用是别名。
  • 指针和引用的自增(++)运算符意义不同,指针是对内存地址自增,而引用是对值的自增。
  • 引用使用时无需解引用(*),指针需要解引用;
  • 引用只能在定义时被初始化一次,之后不可变;指针可变;
  • 引用不能为空,指针可以为空
  • “sizeof 引用”得到的是所指向的变量(对象)的大小,而“sizeof 指针”得到的是指针本身的大小,在32位系统指针变量一般占用4字节内存。
  • 引用没有const,指针有const;(指针有“指针常量”即int * const a,但是引用没有int& const a,不过引用有“常引用”即const int &a = 1。

指针和引用之间怎么转换

  • 指针转引用:把指针用*就可以转换成对象,可以用在引用参数当中。
  • 引用转指针:把引用类型的对象用&取地址就获得指针了。

转载地址:http://fxrxi.baihongyu.com/

你可能感兴趣的文章
[Leetcode]最后一个单词的长度
查看>>
merges sort use c++
查看>>
插入排序用递归实现
查看>>
工作流审批平台-审批流程-指定审批部门
查看>>
商务智能-系统概述-数据图形方式
查看>>
软件项目管理系统-项目管理-模块定义-开发内容
查看>>
工作流审批平台-审批功能
查看>>
商务智能-基本方法-特征与角度
查看>>
软件项目管理系统-项目管理-模块定义-开发笔记
查看>>
工作流审批平台-业务申请-申请书一览
查看>>
商务智能-基本方法-数据钻取
查看>>
C++程序员技术需求规划(发展方向)
查看>>
如何判断变量在内存中如何放置的?低位在前还是高位在前
查看>>
c语言中通过指针将数值赋值到制定内存地址
查看>>
64位与32位linux c开发时默认字节对齐值
查看>>
malloc(malloc在32位编译系统中分配的地址会8字节对齐,64为编译系统中会8或者16字节对齐)
查看>>
初始化时共享内存的key值和信号量初始化的key值可以一样
查看>>
linux创建线程之pthread_create
查看>>
pthread_attr_init线程通俗举例讲解与线程属性
查看>>
进程和线程的区别
查看>>