下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
string和Char數(shù)組都是一塊內(nèi)存,其中存放連續(xù)的字符.string保存具體字符的內(nèi)存對用戶是透明的,由Delphi管理它的分配,復(fù)制和釋放,用戶不能干預(yù)(其實(shí)也可以,不過是通過非法途徑).Char數(shù)組就不必說了吧?
PChar是一個指針,它的大小只有32位.定義時由Delphi自動填0.要將PChar作為字符串使用的話必須自己分配內(nèi)存用完必須自己釋放.PChar型字符串由#0表示字符串結(jié)尾
Delphi所提供的相關(guān)PChar字符串的操作都是判斷#0來決定字符串的結(jié)尾的。
因?yàn)镻Char是指針,所以它能指向任何地方(也就是說它不一定非要指向字符串不可).
把一個String賦值給PChar只是將String中保存具體字符串的內(nèi)存的地址給PChar
變量.當(dāng)然也可以把Char數(shù)組第一個元素的地址給PChar.至于哪個占用內(nèi)存小,Char數(shù)組<PChar(指分配過字符串的)<string(除了具體字符串外還包含字符串長度)
如果空字符串那么PChar<String<array[0..n]ofChar
從速度來說毫無疑問string最慢,例如:作為參數(shù)傳遞(非var調(diào)用時)給過程時string將整個字串的副本傳遞過去,PChar將指針本身的副本傳遞過去(32位),Char數(shù)組和PChar一樣,傳遞的是第一個元素的地址副本.
不過就靈活性來說string最高,而且Delphi支持的函數(shù)最多.另外可以將String作為
Buffer使用(因?yàn)樗?dāng)中可以包含字符0).在Delphi2.0以后的版本中,
string分兩種,
一種是與Pascal傳統(tǒng)string相兼容,叫ShortString,
它的存儲結(jié)構(gòu)如下:
+---------------------+
|1Byte|
字符串內(nèi)容|
+---------------------+
0
1......
其中第一個字節(jié)為字符串的長度。
所以ShortString所能包括的字符串長度不能大于255。
另一種是叫長字符串AnsiString,
它就是一個指向字符串的指針,不過具體的存儲有些特別。
它的存儲結(jié)構(gòu)如下:
+-----------------------+
|4B|4B|
字符串內(nèi)容|
+-----------------------+
-8
-4
0
......
其中,AnsiString指向字符串第一個字符,在第一個字符的反方向第1到第4的4個字節(jié)表示字符串長度,第5到第8的4個字節(jié)表字符串被引用的次數(shù)。pchar就是純指向字符串(#0字符結(jié)尾)的指針,與C語言中的char*是一樣的。char數(shù)組也是指向字符串的指針,它與pchar的區(qū)別在于:
1.char數(shù)組(均指非動態(tài)數(shù)組)一旦定義好,它的長度就固定了;
2.char數(shù)組的地址是常量,不能另賦其它值,不能象pchar一樣,
如:sPchar:pchar;sArray1,sArray2:array[0..80]ofchar;
sPChar:=sArray2;sPChar;=sArray1;
但不能sArray2:=sArray1;
char數(shù)組就相當(dāng)于constchar*要說速度最快當(dāng)然是純指針操作的pchar與char數(shù)組最快啦
所謂占內(nèi)存最少,效率更高,
不知老兄你想進(jìn)行什么方面的應(yīng)用,
一般對string,pchar或char數(shù)組,不用考慮這些。對編程而言,如果在Delphi或C++Builder中使用,可盡量使用AnsiString,
Borland公司對它已經(jīng)進(jìn)行了非常完美的內(nèi)部處理,
使用非常方便。
如果涉及到WindowsAPI或混合編程等,接口部分一般使用pchar。char數(shù)組使用的比較少了,因?yàn)槎鄶?shù)可以用char數(shù)組的地方,
現(xiàn)在比較流行的作法是定義一個ansistring,再用setlength來設(shè)定它的長度。lycwg(2001-1-1211:53:20)
------------------------------------------------------------
三、字符串string字符數(shù)組與指向字
符串的指針pchar的區(qū)別與聯(lián)系
這3者的基本概念相同,但有一些非常細(xì)微的差別,在編程時稍不注意就會出錯,需高度重視。
1、使用指向字符串的指針,如果不是以0結(jié)尾,運(yùn)行時就會出現(xiàn)錯誤。為了避免這種錯誤,需要在字符串結(jié)尾人工加入0即char(0),或用strpcopy函數(shù)在字符串結(jié)尾自動加0。
例1:指向字符串的指針,如果不是以0結(jié)尾,運(yùn)行時會出現(xiàn)錯誤:
{s[0]=3s[1]='n's[2]='e's[3]='w'}
var
s:string;
p:pchar;
begin
s:='new';
label1.caption:=s;{new}
label2.caption:=intTostr(integer(s[0]));{3是字符串的長度}
p:=@s[1];{不是以0結(jié)尾,莫用pchar型指針}
label3.caption:=strpas(p);{運(yùn)行時出現(xiàn)錯誤}
end;例2:在字符串結(jié)尾人工加入0即char(0),可使用指向字符串的指針。
{s[0]=4s[1]='n's[2]='e's[3]='w's[4]=0;}
{p-->'new'}
var
s:string;
p:pchar;
begin
p:=@s[1];
s:='new'+char(0);{以0結(jié)尾,可用pchar型指針}
label1.caption:=strpas(p);{new}注意:procedure
GetM
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- GB/T 17895-2025氣體燃料汽車術(shù)語
- GB/T 46550.1-2025天然氣加臭劑的測定第1部分:用光離子化氣相色譜法測定四氫噻吩和無硫加臭劑含量
- 2026年湖北職業(yè)技術(shù)學(xué)院單招職業(yè)傾向性考試題庫及答案詳解一套
- 2026年云南省迪慶藏族自治州單招職業(yè)傾向性考試題庫及參考答案詳解一套
- 2026年岳陽職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性考試題庫及答案詳解一套
- 2026年貴州食品工程職業(yè)學(xué)院單招職業(yè)傾向性考試題庫參考答案詳解
- 2026年陜西能源職業(yè)技術(shù)學(xué)院單招職業(yè)適應(yīng)性測試題庫及完整答案詳解1套
- 2026年焦作師范高等??茖W(xué)校單招職業(yè)傾向性考試題庫及答案詳解一套
- 2026年綿陽飛行職業(yè)學(xué)院單招綜合素質(zhì)考試題庫附答案詳解
- 2026年廈門演藝職業(yè)學(xué)院單招職業(yè)傾向性測試題庫含答案詳解
- 國家開放大學(xué)一網(wǎng)一平臺電大《建筑測量》實(shí)驗(yàn)報(bào)告1-5題庫
- 會計(jì)職業(yè)生涯規(guī)劃書
- 液壓傳動課程設(shè)計(jì)-臥式半自動組合機(jī)床液壓系統(tǒng)
- 品質(zhì)異常通知單
- 鼎捷T100-V1.0-總賬管理用戶手冊-簡體
- GB 31644-2018食品安全國家標(biāo)準(zhǔn)復(fù)合調(diào)味料
- 邏輯學(xué)(北大課件)
- 援疆工作調(diào)研報(bào)告
- 加油站班前會記錄表
- 機(jī)車-受電弓碳滑板磨耗檢測
- 數(shù)學(xué)建模電子教材
評論
0/150
提交評論