<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 為某種類型的指針
舉例說明:
知道以上這些就可以操作了, 就可以看懂别人的代碼了; 不過要想徹底明白指針到底是怎麼回事, 需要從記憶體談起.