传参中的深拷贝和浅拷贝

深拷贝和浅拷贝的区别

深拷贝和浅拷贝最根本的区别在于是否真正获取一个对象的复制实体,而不是引用。

这句话读起来很复杂,但其实很好理解,因为这两者的区别就是拷贝后的对象是否对原来的对象有影响

浅拷贝(shallowCopy)只是增加了一个指针指向已存在的内存地址,
浅复制只会将对象的各个属性进行复制,并不会进行递归复制

深拷贝(deepCopy)是增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存
深拷贝它不仅将原对象的各个属性逐个复制出去,而且将原对象各个属性所包含的对象也依次采用深复制的方法递归复制到新对象上。这就不会存在对象的属性指向同一个对象的问题。

在涉及到指针赋值的函数中经常会出现浅拷贝与深拷贝,大家要注意程序的需求与逻辑谨慎使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值