a = 1,b = a,則 a 和 b指向同一id位址即1的位置
我們把1比作一塊林地,a發現了這塊地,然後告訴了鄰居b,a和b都有相同的許可權在這塊地上伐木
a=[1,2,3[4,5,6]],b=copy.copy(a),淺拷貝只能轉殖a中第一層(1,2,3),深層中b還是和a指向同乙個([4,5,6])
眾泰(b)發現保時捷(a)的車挺好的,想自己造乙個一樣的,但是沒技術,就把自己家的車設計成和保時捷一樣的外形,發動機什麼的[4,5,6]就只能用保時捷的了
a=[1,2,3[4,5,6]],b=copy.deepcopy(a),b深拷貝完全轉殖乙個a
經過多年研究眾泰攻克了技術難題,掌握了核心科技
眾泰(b)發現保時捷(a)的車挺好的,想自己造乙個一樣的,現在有技術了,就把自己家的車設計成和保時捷一樣,發動機什麼的[4,5,6]自己都造了乙個一模一樣的,完全靠自己造出了一模一樣的保時捷(a)
拷貝構造和拷貝賦值
注意指標型別成員變數的深拷貝問題 拷貝構造屬於定義,並賦值 拷貝賦值屬於已經定義,只是賦值。拷貝構造的深拷貝,因為如果提供了拷貝建構函式,則構造該物件時使用的是拷貝建構函式。在拷貝建構函式中只需要 分配新資源,拷貝新內容,返回自引用即可。但是在拷貝賦值函式中,如果存在指標成員變數一般在物件定義時已經...
賦值 淺拷貝和深拷貝
三種方法的形式存在一定的類似,但是也存在各個之間不相同的地方。淺拷貝和深拷貝是用在物件 object 或者陣列 array 這樣的資料型別拷貝賦值時候的說法,而賦值操作也可以用在基礎的資料型別,如number string等 賦值 對於物件型別資料的影響 賦於該值在棧中的位址,而不是堆中的資料,使得...
Go賦值和拷貝
測試 package main import fmt func main func test1 b a 等號賦值 fmt.printf b切片的值 v,a位址 p,b位址 p n b,a,b a 0 100 fmt.printf 等號賦值當改變源值,新值也會改變 v n b func test2 b...