引用和指针的关系,引用在内存中是如何存储的

引用类型是指存储在内存堆上的数据类型,堆与栈是不一样的,存储在堆上的数据CPU不能直接读取,需要使用一个地址去查找。

引用书面语中,引用指的是在说话或者写作中引用现成的话,在计算机语言中,引用就是某一变量或者目标的别名,对引用的操作与对变量直接操作完全一样,引用的声明方法:类型标识符&引用名=目标变量名

(1)指针是实体,引用是别名,没有空间。

(2)引用定义时必须初始化,指针不用。

(3)指针可以改,引用不可以。

(4)引用不能为空,指针可以。

(5)Sizeof(引用)计算的是它引用的对象的大小,而sizeof(指针)计算的是指针本身的大小。

(6)不能有NULL引用,引用必须与一块合法的存储单元关联。

(7)给引用赋值修改的是该引用与对象所关联的值,而不是与引用关联的对象。

(8)如果返回的是动态分配的内存或对象,必须使用指针,使用引用会产生内存泄漏。

(9)对引用的操作即是对变量本身的操作。

在这里插入图片描述
电脑的内存是连续存储,最基本的单位是字节,你可以想像内存就是一排小房子,里面住着不同类型的数据。每个小房子都有一个编号,CPU在运算时通过这个编号到内存去获取想要的数据。
比如上图中定义了三个整形变量:
int i=3;
int j=6;
int k=9;
变量i存在内存中编号为2000的小房子那里,而且它占用了4间小房子。所以下一个变量j只能存在编号为2004的小房子那里,而且它也占用了4间小房子。
我们在写程序时使用变量名i,j,k,但CPU在实际计算时使用的是编号2000,2004和2008。变量只是在我们写代码和阅读代码时,起了个助记的作用。
下面总结一下:
变量的本质:
变量是一段实际连续存储空间的别名,程序通过变量来申请并命名存储空间,可以通过变量名使用存储空间,变量所占内存的大小取决于其所属的数据类型。对CPU来说,根本没有变量这个概念,CPU面对的是一段段大小不一、解析方法不同的内存。
数据类型:
数据类型是创建变量的模子,可以理解为有固定内存大小和统一解析方法的内存的别名,用来为编译器提供该类型数据需要的内存空间大小和数据的解析方法。如int类型数据就是占4个字节,按照有符号整形数据进行操作。Double类型数据占8个字节,按照高精度浮点型进行解析。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鼾声鼾语

感谢您的支持鼓励!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值