首页 > 试题广场 >

深复制和浅复制的区别?

[问答题]
深复制和浅复制的区别?
你自己读一读答案,tm能读的顺吗?
发表于 2022-06-22 22:05:48 回复(0)
浅拷贝:只是对指针拷贝,拷贝后两个指针指向同一个内存空间 深拷贝:不但对指针进行拷贝,对指针指向的内容进行拷贝,两个指针不同的内存空间 区分:指针A拷贝指针B,B变化后,看A是否变化,变化的是浅拷贝,不变的是深拷贝
发表于 2023-08-07 15:30:52 回复(0)
浅拷贝就比如像引用类型,而深拷贝就比如值类型。(浅复制和深复制) 浅复制使用相同的一块地址,对同一块地址进行操作,会相互影响;深复制使用两个不同的地址,各种对不同的地址进行操作,不会互相影响。
发表于 2022-10-01 11:33:21 回复(0)
从指针的角度考虑的话。浅拷贝相当于使用原数据的指针来使用值,当原数据发生改变时,浅拷贝还是指向的原数据的那块内存空间,拿出的值自然也会跟着变。所以浅拷贝拷贝的值在原数据发生改变时,拷贝的值也会跟着变。深拷贝不再是拿指针来使用值了,而是直接将原数据的值直接拷贝出来放在另一块内存空间上,这样不论原数据咋变,都不会影响深拷贝拷贝出来的那块内存空间中存储的值了。
发表于 2023-08-25 13:48:06 回复(0)
复刻对象和被复刻对象是否占用一地址空间,如果占用同一地址就是浅拷贝,如果是不同的地址就是深拷贝
发表于 2022-10-26 21:00:52 回复(0)
深拷贝:源对象和拷贝对象相互独立,占据不同的内存空间 浅拷贝:源对象和拷贝对象占用的同一片空间
编辑于 2024-03-16 15:09:37 回复(0)
浅复制: 浅复制只复制对象本身,不会复制对象内部的引用对象。 复制的对象和原始对象共享内部的引用对象,即复制的对象内部的引用指向与原始对象相同的内存地址。 修改复制对象内部引用指向的对象会影响到原始对象,因为它们指向同一块内存地址。 浅复制通常是对对象的直接拷贝,例如通过赋值操作符、拷贝构造函数等实现。 深复制: 深复制会创建一个全新的对象,并递归地复制对象内部的所有引用对象。 复制的对象和原始对象完全独立,修改复制对象不会影响原始对象,反之亦然。 深复制通常需要自定义实现,通过递归地复制对象内部的引用对象来实现完全独立的复制。
编辑于 2024-04-06 18:08:26 回复(0)
浅拷贝就比如像引用类型,就是对象的数据成员之间的简单赋值,占用的是同一个地址空间;而深拷贝就比如值类型,源对象与拷贝对象互相独立,占用不同的地址空间。
发表于 2023-10-23 16:23:57 回复(0)
浅拷贝就好比一个指针指向另一个指针指向的地址空间,深拷贝就是重新开了一片空间,指针指向这片空间,然后把之前那个地址的内容赋值给这片空间
发表于 2023-03-17 16:56:31 回复(0)