深拷贝与浅拷贝

引用

下图中从d和c的id()可以知道,d和c都指向了[a,b],并没在内存中开辟一个新的地址,。注意c列表中的两个元素也是一个引用,分别是a,b所指向的列表的引用。
深拷贝与浅拷贝,一读就会

引用的理解图

深拷贝与浅拷贝,一读就会

浅拷贝

下图中e对c进行了浅拷贝,我们可以发现e和c的id不同,即e在内存空间新开辟了一块地址,但是e列表的第一个元素地址和c列表的第一个元素地址c相同,即他们共同指向[11,22],即浅拷贝只是拷贝了最外一层的对象,内层对象不拷贝。
深拷贝与浅拷贝,一读就会

浅拷贝的理解图
深拷贝与浅拷贝,一读就会

深拷贝

下图中f对c进行了深拷贝,我们可以发现f和c的id不同,即f在内存空间新开辟了一块地址,而且f列表的f第一个元素地址和c列表的第一个元素地址c不相同,即f也开辟了一个新的地址用来存[11,22],即深拷贝不仅拷贝了最外一层的对象,而且也对内层对象拷贝。深拷贝与浅拷贝,一读就会
深拷贝与浅拷贝,一读就会

深拷贝的理解图
深拷贝与浅拷贝,一读就会

相关文章:

  • 2021-11-14
猜你喜欢
  • 2021-12-15
  • 2021-04-01
相关资源
相似解决方案