Pascal Move的用法
System單元的Move過程用來把指定內(nèi)存段的數(shù)據(jù)整塊復(fù)制到另一內(nèi)存段中,它通常用來成批移動(dòng)數(shù)組元素。Move的格式是Move(var Source, Dest; Count: Word),Source是數(shù)據(jù)源,Dest是目標(biāo)內(nèi)存段,Count是復(fù)制的字節(jié)數(shù)。你不必?fù)?dān)心源內(nèi)存段會(huì)和目標(biāo)內(nèi)存段重疊或者重合,在這種情況下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個(gè)longint 到P[4] for I := 0 to 9 do Writeln(P[I]: 4); end.
0123456789 à 0145678989
值得注意的是Count的大小,這與identifier的類型(所占字節(jié)數(shù))有關(guān),以下給出參考
byte,shortint |
|
word,integer |
|
longint |
|
|
|
single |
|
real |
|
|
|
extended |
|
|
|
char |
|
|
|
string |
1(per char)* |
*例 Var a:string 'a:='12345'; move(a[4],a[1],2); a="45345"
基本上Pascal里常用的就這些了
另外,所占字節(jié)數(shù)不同不能move(不是數(shù)組,Count選字節(jié)數(shù)大的,有時(shí)也是可以的),不同類型不能move,否則會(huì)搞得亂七八糟,而往往因move錯(cuò)誤地使用造成的 答案錯(cuò)誤、死循環(huán) 很難發(fā)現(xiàn)!
相關(guān)文章
uniapp語音識(shí)別(訊飛語音)轉(zhuǎn)文字
這篇文章主要介紹了uniapp語音識(shí)別(訊飛語音)轉(zhuǎn)文字,需要的朋友可以參考下2022-12-12vant/vue實(shí)現(xiàn)小程序下拉刷新功能方法詳解
這篇文章主要介紹了vant/vue實(shí)現(xiàn)小程序下拉刷新功能方法詳解,需要的朋友可以參考下2022-12-12詳解基于深度學(xué)習(xí)的兩種信源信道聯(lián)合編碼
信源編碼是一個(gè)數(shù)據(jù)壓縮的過程,其目的是盡可能地將信源中的冗余度去掉;而信道編碼則是一個(gè)增加冗余的過程,通過適當(dāng)加入冗余度來達(dá)到抵抗信道噪聲,保護(hù)傳輸數(shù)據(jù)的目的。2021-05-05