陣列的拷貝注意項

2021-09-30 13:54:12 字數 537 閱讀 9920

在陣列的學習中,拷貝陣列需要注意一些容易犯錯的地方。

如果需要拷貝陣列,最好使用分片拷貝:

li1 = [1,3,4,2]

li2 = li1[:]

prrint(li2)

=>[1,3,4,2]

現在我們有乙個陣列 li1 = [1,3,4,2]

如果我們使用平常的賦值變數的操作的話,會遇到一些問題,如果陣列在運用陣列方法的時候:

li1 = [1,3,4,2]

li12 = li1[:]

li3 = li1

li1.sort()

print(li2)

=>[1,3,4,2]

print(li3)

=>[1,2,3,4]

在這裡,其實li3 = li1  如同原陣列[1,3,4,2]賦予了2個名字一般,其實是同乙個陣列,通過其中乙個名字去改變它的排序,實際改變了這個陣列的本身,而li2 是重新拷貝出來了乙個陣列,他們是不同的;

iOS開發 陣列的深拷貝淺拷貝注意點

今天寫 過程中遇到乙個頭疼的問題 可變陣列經過深拷貝之後,變動新陣列裡面的元素,原來的陣列也會跟著變。做了一下實驗,得到如下結論 當陣列元素是自定義類的時候,不管深淺拷貝,陣列裡面的元素位址是不變的。dpntextcontent content1 dpntextcontent alloc init ...

陣列的拷貝

我們在平時的陣列想等操作時候,會想到想數一樣的讓他們直接兩個陣列相等,就像a b 陣列,我們會想到直接a b,但這樣在c語言中是不可行的,在c語言中,陣列拷貝要用 memcpy 包含在標頭檔案 include中。下面我們先來說整數陣列的複製,直接上 include includeusing name...

陣列的拷貝

1 t指向s之後,修改了t 0 的值,所以bob就變成了tom,列印出來的是tom。注意 1 這個不是拷貝,因為兩者指向的是同乙個物件,拷貝是賦值乙份新的出來,在新的物件上進行的修改與原物件無關。2 陣列的拷貝 1 system中有提供arraycopy方法,從from陣列到to陣列 fromind...