陣列拷貝和用 複製兩種方式辨析

2021-10-14 01:23:08 字數 1090 閱讀 6664

陣列拷貝和用 = 複製兩種方式辨析

int arr=

;int copyarr=

;//第一種直接使用 = 賦值;本質上操作的是同乙個陣列.

copyarr = arr;

//第二種將arr陣列的值按順序依次賦值給copyarr陣列.從而進行複製

for(

int i =

0; i < arr.length; i++

)//第三種使用copyof方法進行陣列的深拷貝

copyarr = arrays.

copyof

(arr, arr.length)

; copyarr[0]

=100

;

system.out.

println

(arrays.

tostring

(arr));

system.out.

println

("**********==");

system.out.

println

(arrays.

tostring

(copyarr)

);

直接使用 「=」 賦值的方法

結果為:

[100, 2, 3, 4, 5]

**********==

[100, 2, 3, 4, 5]

第二種將arr陣列的值按順序依次賦值給copyarr陣列.從而進行複製

結果為:

[1, 2, 3, 4, 5]

**********==

[100, 2, 3, 4, 5]

第三種使用copyof方法進行陣列的深拷貝

結果為[1, 2, 3, 4, 5]

**********==

[100, 2, 3, 4, 5]

從結果可以看出我們三種方法是有區別的,第一種在操作上只是為原來的陣列起了個別名,在使用過程中實際改變的還是原來的陣列元素.

其他兩種方法都在記憶體中開闢了乙個新的空間來存放複製後的陣列.從而進行操作對原來的陣列不存在影響.

陣列的兩種傳遞方式

陣列傳遞 將陣列作為引數傳遞給函式,分值傳遞和位址傳遞。其中,值傳遞的效率較低,不建議使用。兩種傳遞方式都會改變main函式中陣列的值,如下 中a 3 的結果都為6。注意區分陣列的值傳遞和函式值傳遞的區別。陣列的兩種傳遞方式 includeusing namespace std 值傳遞 void f...

陣列的兩種建立方式

var 陣列名 new array 定義了乙個空 的陣列 var array1 new array 定義了乙個長度為6的陣列 var array2 new array 6 輸出陣列的每個值都是 undefined console.log array2 可以直接定義陣列的具體值 var array3 ...

拷貝建構函式的兩種呼叫方式

下屬專案 測試用例數量 什麼是拷貝建構函式無1 兩種呼叫方式是什麼無1 define crt secure no warnings include iostream using namespace std include class test void seta int a intgeta char...