中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久

關于Delphi中的字符串的詳細分析
來源:易賢網 閱讀:1827 次 日期:2015-08-27 16:41:15
溫馨提示:易賢網小編為您整理了“關于Delphi中的字符串的詳細分析”,方便廣大網友查閱!

只是淺淺的解析下,讓大家可以快速的理解字符串。

其中的所有代碼均在Delphi7下測試通過。

Delphi 4,5,6,7中有字符串類型包括了:

短字符串(Short String)

長字符串(Long String)

寬字符串(Wide String)

零結尾字符串(Null-Terminated String)、PChar和字符數組

1、短字符串(Short String)

固 定長度,最大字符數個數為255,短字符串也成為長度字節(Length-byte)字符串,這時因為短字符串的第0個元素包含了這個字符串的長度(字符 串中字符的個數)。因此ShortString的缺省最大長度為256個字節(255個字符+1個長度字節=256),聲明一個短字符串有兩種方式,如 下:

var

S: ShortString; { 255個字符長度,256個字節}

S1: String[255]; { S1和S的字符類型一樣}

Len: Integer;

begin

S := 'Hello';

Len := Ord(S[0]); { Len現在包含S的長度為5,Ord函數可以把一個字符類型轉換為整數類型}

Len := SizeOf(S); { Len現在包含的是ShortString類型的大小,為256字節}

end;

以上例子通過S[0]可以獲得S的字符串長度,當然也可以用Length函數來確定一個短字符串的長度。

可以通過數組的下標來訪問ShortString中的一個特定位置的字符,具體使用參看下面例子和注釋說明:

var

S: string[8];

i: Integer;

begin

S := 'a_pretty_darn_long_string';

{ 因為S只有8個字符大小,

因此s的實際存儲的內容為“a_pretty”}

i := 10;

S[i] := 's';

{ 因為S只有8個字符大小,

試圖改寫第10個元素,將會使內存混亂}

end;

2、長字符串(Long String)

長字符串 (AnsiString)是一種動態分配的字符串,其大小只受可用內存的限制。聲明一個長字符串,只需要用關鍵字String不加大小參數即可。

在Delphi 7中AnsiString包含的字符是用單字節存儲的。

var

S: string;

由于是動態分配的,一次可以隨意修改字符串,而不用擔心對其他的影響,也不用擔心越界的問題。String類型沒有0元素,試圖存取String類型的0元素會產生一個編譯錯誤。

通過Length函數也可以獲得長字符串的長度,也可以通過SetLength過程為長字符串設置長度。其在內存中分配情況如下:

名單

3、寬字符串(Wide String)

寬字符串和長字符串一樣,大小只受有效內存的限制,并實行動態分配。

在Delphi 7 中WideString被實現為2個字節存儲一個字符,用WideString來處理多字節字符是十分方便的。如:

var

S: string;

{ 在Delphi 7中默認string等同于AnsiString}

WS: WideString;

begin

S := '世界你好';

WS := S;

ShowMessage(S[1]); { 此時無任何顯示,因為S[1]取出的是‘世’的一半}

ShowMessage(WS[1]); { 顯示‘世’}

end;

4、零結尾字符串(Null-Terminated String)、PChar和字符數組

在C和C++中沒有真正的字符串數據類型,都是通過以Null結尾(0)的字符數組來實現的,字符數組沒有長度字節,因此只能通過結尾的Null標 志來作為字符串的字符結束標志。又因為Windows是用C編寫的,很多Windows函數要用到以字符數組作為參數,但Pascal字符串類型不是字符 數組,因為為了讓Pascal字符串也能與Windows兼容,就需要一個字符串數組,PChar類型正是符合這種需求,在任何需要字符數組的地方都可用 PChar。

雖然AnsiString和WideString都已經實現了NULL

相應的也有PAnsiChar和PWideChar,分別對應于AnsiChar字符和WideChar字符。

例如:Windows MessageBox函數,此函數聲明如下:

function MessageBox(hWnd: HWND; lpText, lpCaption: PChar; uType: UINT): Integer; stdcall;

第二個和第三個參數需要一個指向字符數組的指針,為了可以調用此函數,有以下三種方法來實現

1、PChar()類型轉換

var

Text: string;

Caption: string;

begin

Text := 'This is a test.';

Caption := 'Test Message';

MessageBox(0, PChar(Text), PChar(Caption), 0);

{ 這里PChar用來把string類型轉換為Null結尾的字符串}

end;

其中

2、PChar變量

我們先做一個實現,看看PChar類型到底是啥呢?

運行下面程序

var

Text: PChar; { 聲明為PChar類型}

Str: string; { 聲明為String類型}

begin

Text := 'This is a test.'; { 都被賦予了相同的字符串}

Str := 'This is a test.';

ShowMessage(IntToStr(SizeOf(Text))); { 4字節,實質是指針}

ShowMessage(IntToStr(SizeOf(Str))); { 也是4字節,也是指針}

end;

通過上面的程序,我們知道Text只不過是一個指針而已。

var

Text: PChar;

begin

Text := 'This is a test.';

MessageBox(0, Text, 'Test Message', 0);

{ 這里Text直接聲明為了PChar類型,字符串常量可以直接用}

end;

指針Text指向了這樣一個內存區域,一個包含Null的結尾的’This is a test’字符串的區域。其等同于下面的代碼:

const

TempString: array[0..15] of Char = 'This is a test.'#0;

var

Text: PChar;

begin

Text := @TempString[0];

{Text指向Null結尾的TempString字符數組的第0個元素的地址,

也就是整個字符數組的首地址}

MessageBox(0, Text, 'Test Message', 0);

end;

3、Char類型字符數組

最有還可以用Char數組來代替PChar,代碼如下:

var

Text1: array[0..14] of Char; { 大小為15個字符}

Text2: array[0..20] of Char; { 大小為21個字符}

begin

Text1 := 'This is a test.'; {Text1和Text2的字符長度都為15個字符}

Text2 := 'This is a test.';

MessageBox(0, Text1, 'Test Message 1', 0);

{因為Text1的字符長度超過了其聲明的大小,因為會內存訪問混亂,顯示換亂}

MessageBox(0, Text2, 'Test Message 2', 0);

{Text2的字符長度比起聲明的大小要小,因為正常訪問,顯示正確}

end;

顯示結果如下:

名單

關于字符串就先淺淺的談到這個,以后再深入了解。

更多信息請查看IT技術專欄

更多信息請查看網絡編程
易賢網手機網站地址:關于Delphi中的字符串的詳細分析
由于各方面情況的不斷調整與變化,易賢網提供的所有考試信息和咨詢回復僅供參考,敬請考生以權威部門公布的正式信息和咨詢為準!

2026上岸·考公考編培訓報班

  • 報班類型
  • 姓名
  • 手機號
  • 驗證碼
關于我們 | 聯系我們 | 人才招聘 | 網站聲明 | 網站幫助 | 非正式的簡要咨詢 | 簡要咨詢須知 | 新媒體/短視頻平臺 | 手機站點 | 投訴建議
工業和信息化部備案號:滇ICP備2023014141號-1 云南省教育廳備案號:云教ICP備0901021 滇公網安備53010202001879號 人力資源服務許可證:(云)人服證字(2023)第0102001523號
云南網警備案專用圖標
聯系電話:0871-65099533/13759567129 獲取招聘考試信息及咨詢關注公眾號:hfpxwx
咨詢QQ:1093837350(9:00—18:00)版權所有:易賢網
云南網警報警專用圖標
中文字幕免费精品_亚洲视频自拍_亚洲综合国产激情另类一区_色综合咪咪久久
狠狠色狠狠色综合| 一区二区欧美在线观看| 久久午夜视频| 久久久精品999| 蜜桃av综合| 久久影院亚洲| 欧美日韩国产大片| 欧美日韩一区二区在线| 国产精品女主播在线观看| 国产精品久久久久久久午夜片| 国产精品久久久久久久久免费桃花 | 国产精品影视天天线| 欧美日韩国产精品自在自线| 欧美日韩在线视频首页| 国产精品日日摸夜夜添夜夜av| 国产精品一区在线观看你懂的| 国产一级久久| 国内成人精品视频| 亚洲黄色天堂| 午夜精品福利视频| 欧美国产三区| 国产一区二区久久精品| 国内一区二区在线视频观看| 99精品国产99久久久久久福利| 一本大道久久a久久精二百| 亚洲一区国产一区| 久久综合中文字幕| 国产精品久久久久久久久久妞妞| 国产精品久久久久毛片大屁完整版 | 久久久久.com| 国产日韩精品在线观看| 妖精成人www高清在线观看| 久久精品国产欧美亚洲人人爽| 久久婷婷综合激情| 国产精品久久久91| 午夜亚洲影视| 欧美亚男人的天堂| 一本色道久久综合一区| 久久网站免费| 亚洲成人直播| 免费短视频成人日韩| 亚洲国产日韩一区| 葵司免费一区二区三区四区五区| 国产精品美女| 免费人成精品欧美精品| 国产一区二区久久久| 校园激情久久| 国产欧美日韩中文字幕在线| 午夜精品一区二区三区在线| 国产精品久久久久久久午夜| 亚洲一区二区三区色| 国产午夜精品麻豆| 欧美中文在线字幕| 国产综合色精品一区二区三区| 欧美成人免费播放| 一区二区电影免费观看| 国产九九精品视频| 久久三级福利| 99国产精品国产精品久久| 欧美午夜视频网站| 欧美一区视频在线| 亚洲国产精品精华液网站| 欧美精品少妇一区二区三区| 亚洲一本大道在线| 国产精品久久久久久久久久久久久久| 亚洲无限av看| 亚洲经典视频在线观看| 欧美午夜电影在线| 欧美制服丝袜第一页| 在线观看av不卡| 国产精品网站在线播放| 欧美成人午夜免费视在线看片| 这里只有精品在线播放| 韩国av一区二区三区四区| 欧美精品成人一区二区在线观看| 一区二区三区视频在线观看| 国产麻豆综合| 理论片一区二区在线| 西瓜成人精品人成网站| 在线观看欧美日韩| 国产视频在线观看一区| 欧美激情亚洲激情| 久久精品在线观看| 久久黄色影院| 欧美一进一出视频| 午夜精品一区二区三区在线| 99xxxx成人网| 宅男66日本亚洲欧美视频| 99re6热只有精品免费观看 | 国产精品久久久久久户外露出 | 欧美波霸影院| 玖玖综合伊人| 免费中文日韩| 欧美日韩不卡合集视频| 欧美精品一区三区| 欧美日韩极品在线观看一区| 欧美日韩国产小视频| 欧美日韩在线视频观看| 欧美日韩一区二区免费视频| 欧美日韩亚洲一区二区三区在线观看 | 欧美高清视频www夜色资源网| 麻豆成人小视频| 欧美日韩一二三区| 国产伦精品一区二区| 一区在线视频观看| 亚洲第一中文字幕在线观看| 亚洲精品久久久久中文字幕欢迎你| 亚洲大胆人体视频| 亚洲视频导航| 老色批av在线精品| 欧美极品影院| 国产精品九九| 亚洲第一免费播放区| 亚洲视频导航| 欧美成人中文字幕| 国产午夜亚洲精品理论片色戒| 亚洲高清一区二区三区| 亚洲激情女人| 亚洲专区一区| 免费在线日韩av| 美女露胸一区二区三区| 欧美性大战久久久久久久蜜臀| 国产精品高潮呻吟视频| 亚洲高清网站| 亚洲精品久久久久久久久久久久久| 一区二区三区高清不卡| 亚洲综合色丁香婷婷六月图片| 午夜视频在线观看一区二区| 免费在线观看精品| 国产精品久久久久久久久久免费| 国产一区二区三区直播精品电影| 狠狠v欧美v日韩v亚洲ⅴ| 一区二区三区四区国产| 欧美精品乱码久久久久久按摩| 国产无一区二区| 欧美一级黄色录像| 国内精品国语自产拍在线观看| 亚洲香蕉成视频在线观看| 免费在线观看日韩欧美| 国产一区二区在线观看免费| 欧美一区二区三区四区夜夜大片| 美女视频黄免费的久久| 国产日韩成人精品| 亚洲视频在线看| 欧美人与性动交cc0o| 亚洲伦理在线| 欧美激情女人20p| 亚洲国产高清一区| 久久人人爽国产| 亚洲激情午夜| 欧美精品一区在线| 日韩午夜一区| 欧美日韩在线播放一区二区| 亚洲精品日韩一| 国产精品免费视频xxxx| 欧美黄色影院| 亚洲日本aⅴ片在线观看香蕉| 狼狼综合久久久久综合网| 99热免费精品| 国产免费成人av| 牛夜精品久久久久久久99黑人 | 国产精品久久久久毛片大屁完整版| 午夜电影亚洲| 极品少妇一区二区| 欧美视频在线观看一区| 欧美在线高清视频| 最新日韩在线| 激情久久综艺| 欧美色网在线| 久久夜色精品亚洲噜噜国产mv | 欧美激情精品久久久久久蜜臀 | 你懂的网址国产 欧美| 一本色道婷婷久久欧美| 激情综合网址| 国产精品高潮呻吟| 欧美成人午夜77777| 欧美一级成年大片在线观看| 在线观看日韩| 国产精品色婷婷久久58| 欧美精品www在线观看| 久久五月婷婷丁香社区| 一本色道久久综合一区| 一区二区亚洲精品国产| 国产精品免费看| 国产精品成人免费| 欧美劲爆第一页| 欧美护士18xxxxhd| 你懂的国产精品永久在线| 国产精品免费电影| 欧美午夜一区二区福利视频| 欧美精品免费视频| 麻豆国产精品va在线观看不卡| 欧美专区日韩视频| 亚洲一区精品电影| 亚洲欧美精品suv| 亚洲一区免费在线观看| 亚洲精品免费一二三区| 亚洲区在线播放| 亚洲深夜福利网站| 久久黄金**|