关于深拷贝与浅拷贝(不是不是题解,是知识备忘和博客闲聊)

本文探讨了深拷贝与浅拷贝的区别,通过实例解释了浅拷贝如何导致类之间的“粘连”,并讨论了几种分析浅拷贝行为的方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

淦,今天早上不适合学习,失手点开知乎看了两个句子就要死要活,还是书读少了。

算了,关了欧美打鸡血的战歌,听陈粒写写代码放松放松吧。

代码,棒垒和酒精,总得给我一个吧。


说深拷贝与浅拷贝的遗留问题。

深拷贝其实反而很简单。

深拷贝就是真的把原本的内容一式两份,你我都拿一张实实在在的数据,大路朝天,互不相干。

浅拷贝嘛,反而有点像=赋值运算符重载。

由于浅拷贝是底层写好的,分析起来就比较麻烦,大抵有两三种办法:

一个是看它的汇编语言,这个我目前不会,但这个启发我可能可以自己放假了有空学一下。

一个是按黑箱来操作,给它一个命令,它的结果应该符合你的理解——就是孟德尔的假说演绎法嘛,一样的。

还有一个是直接查资料找它底层是怎么写的的直接描述。

一般的数据在栈中储存,指针亦如此,当浅拷贝拷贝了指向相同堆中内存的指针,却没有把堆中内存的数据一式两份时,就会导致拷贝前后两个类“粘连”在一起。

数组与指针同理。

说白了也就这么一句话,在浅拷贝直接写类A=类B时,实际上这个=还是很神奇的,等于是个重载运算符,背后是一个浅拷贝函数。

上次星儿想交换两个数组头指针,存到类里利用浅拷贝的特性还是很不错的。就我目前的知识,指向指针的指针这里写的还不太好,有机会再探究吧。


天蛮晴,大海从远方升起,没有人说话,楼宇在工作日因为最忙碌的启动而毫无特别,我望向尽可能的前方,大风大概在吹,人们大概在回来。

人们总是从一处涌向另一处,我有时跟着队伍,但也常常落伍,间或还栽了个跟头或怎样地割伤了手,且便条件反射似的很快爬起来,含着歉意说道:‘没事没事’,然而终究难免怔楞着站了很久,很久很久。

我要走了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值