天天看點

Delphi 的類型與指針

<a target="_blank" href="http://www.cnblogs.com/del/archive/2008/03/07/1094655.html">談談 Delphi 的類型與指針[1]</a>

先聲明: 不要把我說的這些個東西當作教科書, 這都是自己的淺見; 同時希望得到指正.

Delphi 的指針分為 "類型指針" 和 "無類型指針" 兩類.

Delphi 中的類型, 常用的也得有幾百個, 我們可以給每種類型定義相應的類型指針.

其實 Delphi 已經為很多類型預定義了指針, 譬如資料類型: 

Integer 有對應的 PInteger;

Char 有對應的 PChar;

string 有對應的 PString;

再譬如: 

TPoint 有對應的 PPoint;

TColor 有對應的 PColor 等等.

另外, 指針也可以有指針, 譬如: PChar 是字元指針, PPChar 又是 PChar 的指針(這都是 Delphi 預定義的).

根據上面的例子, 咱們先總結一下類型與指針的命名規則:

類型約定用 T 打頭(Delphi 正常的資料類型除外, 譬如: String);

指針約定用 P 打頭;

指針的指針約定用 PP 打頭.

類型和指針是不可分的兩個概念, 指針本身也是一種類型 - "指針類型".

先認識一下指針相關的操作符(@、^、Addr):

@

@變量

擷取變量指針

Addr

Addr(變量)

^

指針^

擷取指針指向的實際資料

var Pxxx: ^類型

定義 Pxxx 某種類型的指針的變量 

type Pxxx = ^類型 

定義 Pxxx 為某種類型的指針

舉例說明:

知道以上這些就可以操作了, 就可以看懂别人的代碼了; 不過要想徹底明白指針到底是怎麼回事, 需要從記憶體談起.

繼續閱讀