1.陣列與陣列間的引用
vararr1,arr2:
array
ofinteger;
a: array[0
..1] of
integer;
begin
setlength(arr1,6);
arr1[
5] :
=100
;arr2 :
=arr1;
//arr2 引用了 arr1
showmessage(inttostr(arr2[
5]));
//100
showmessage(inttostr(length(arr2)));
//當然 arr2 維數也會是
6showmessage(inttostr(sizeof(arr1))); //4
, 其實動態陣列是個指標
showmessage(inttostr(sizeof(arr2))); //4
arr2[
5] :=99
;
//現在它們指向同乙個陣列, 改變這個就是改變那個
showmessage(inttostr(arr1[
5]));
//99
arr1 :
=nil
;
//釋放其中乙個指標, 陣列繼續存在
showmessage(inttostr(arr2[
5]));
//99
end;
在以上的例子中,arr2引用arr1,由於動態陣列的本質是指標,所以他們指向相同的記憶體區域,所以改變arr2指向的內容,則arr1也隨之改變;
2.陣列與陣列間的copy
vararr1,arr2:
array
ofinteger;
begin
setlength(arr1,6);
arr1[
5] :
=100
;arr2 :
=copy(arr1);
//陣列 copy
arr2[
5] :=99
; //
改變 arr2 不再影響 arr1
showmessage(inttostr(arr1[5]
-arr2[
5])); //1
setlength(arr1,7);
showmessage(inttostr(length(arr1))); //7
showmessage(inttostr(length(arr2))); //6
, 沒有一點牽扯了
end;
在以上的例子中,arr2拷貝arr1,是拷貝了arr1的內容,並不是copy指標,所以arr2的改變,不在影響arr1的內容
3.copy指定的元素
vararr1,arr2:
array
ofinteger;
i: integer;
begin
setlength(arr1,6);
fori :
=low(arr1)
tohigh(arr1)
do//
給每個元素賦值
arr1[i] :=i
+1;arr2 :
=copy(arr1,1,
3);
//只 copy 第2..
4個元素
showmessage(inttostr(arr1[
1])); //2
, 現在 arr2[
0] 和 arr1[
1] 的值是一樣的
showmessage(inttostr(arr2[
0])); //2
showmessage(inttostr(length(arr1))); //6
, 維數肯定不一樣了
showmessage(inttostr(length(arr2))); //3
end;
java中byte陣列與String間的轉換
byte b for int i 0 i b.length i system.out.println string s null try catch exception e 上面的 只有在陣列b都為正數下才正確,當陣列中包含負數時就會出錯。這時我們可以使用下面的 byte b for int i 0...
String與包裝類 位元組陣列 字元陣列間的轉換
1.字串與基本資料型別 包裝類之間轉換 a.字串 基本資料型別 包裝類 呼叫相應的包裝類的par xx string str b.基本資料型別 包裝類 字串 呼叫字串的過載的valueof 方法 2.字串與位元組陣列的轉換 a.字串 位元組陣列 呼叫字串的getbytes b.位元組陣列 字串 呼叫...
String與包裝類 位元組陣列 字元陣列間的轉換
1.字串與基本資料型別,包裝類之間的轉換 2.字串與位元組陣列間的轉換 3.字串與字元陣列間的轉換 4.string與stringbuffer string stringbuffer 使用stringbuffer的構造器 new stringbuffer string str stringbuffe...