Pascal Move的用法

System單元的Move過程用來把指定內存段的數據整塊復制到另一內存段中,它通常用來成批移動數組元素。Move的格式是Move(var Source, Dest; Count: Word),Source是數據源,Dest是目標內存段,Count是復制的字節數。你不必擔心源內存段會和目標內存段重疊或者重合,在這種情況下Move仍然能夠正確工作,參考下面的樣例:

var
I: Integer;
P: array[0..9] of Longint;

begin
     for I := 0 to 9 do P[I] := I;
     Move(P[4], P[2], 4 * 6); 
     //從P[2]移6個longint 到P[4]
     for I := 0 to 9 do Writeln(P[I]: 4);
end.

0123456789 à 0145678989

值得註意的是Count的大小,這與identifier的類型(所占字節數)有關,以下給出參考

 

byte,shortint

 1
 

word,integer

 2
 

longint

 4
   
 

single

 4
 

real

 6
    double,comp  8
 

extended

 10
   
 

char

 1
     boolean  1
 

string

 

1(per char)*

  *例 Var a:string ‘a:=’12345‘; move(a[4],a[1],2); a=”45345″

基本上Pascal裡常用的就這些瞭

另外,所占字節數不同不能move(不是數組,Count選字節數大的,有時也是可以的),不同類型不能move,否則會搞得亂七八糟,而往往因move錯誤地使用造成的 答案錯誤、死循環 很難發現!

推薦閱讀: