值类型与引用类型

数据项的类型定义了存储数据所需的内存大小以及组成该类型的数据成员。类型还决定了对象在内存中的存储位置——栈和堆。

值类型将数据存放在栈中,而引用类型将数据存放在堆中,将引用存放在栈中。

                               

值类型数据,数据存放在栈中                    引用类型数据:数据存放在堆中,引用存放在栈中

只看这些有些晦涩,举个例子,可能不太准确

比如,你想买点粮食放在仓库中,此时你到了值类型的仓库,也就是栈,里面放着粮食,然后你又到了引用类型那里,引用类型有两个仓库,一个是栈,一个是堆,你到栈中发现栈中存放的不是粮食,而是粮票(引用),粮食在堆里面存着。

看代码效果

sch和sch2均为值类型,sch2拷贝sch时将数据拷贝到了栈中,所以sch2改变时,sch不受影响。

student和student2均为引用类型,student2拷贝student时将只是student的引用拷贝到了栈中,student2改变时将堆中的数据,此时student2中的引用和student中的引用指向堆中的同一个位置,所以student2发生改变时student也受到影响一起发生了改变。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值