『@』是一個運算子,放在變數前面,傳回該變數再記憶體所在之位置。@也可以傳回程序或函數的記憶體位置。『^』有兩種用法,放在型態前面表示要宣告一個指標變數。放在指標變數後面,則為一個運算子,會傳回指標變數所紀錄的記憶體位置的資料值。
var x,y:Integer;
p:^Integer;
begin
x:=17 ;
p:=@x;
y:=p^; showmessage(inttostr(y));
end;
type PInteger=^Integer; //宣告指標形態
var R:Real;
I:Integer;
P:Pointer; //宣告通用型指標變數
PI:PInteger;
begin
P:=@R; //任何型態變數均可指派記憶體位置給p
PI=Pinteger(P); //轉換通用型態指標P為整數指標
I:=PI^;
end;
Pointer型態為通用型態指標,因為指定任何型態資料的記憶體位址,可以利用多用途的指標型態進行強制的資料型態轉換
程序型態允許開發人員以處理變數數值的方式來處理程序和函數
function Max(x,y:Integer):Integer;
begin
if x>y then result:=x
else result:=y;
procedure TForm1.Button3Click(Sender: TObject);
var F:function(x,y:Integer):Integer;
begin
F:=Max; //可以將函數Max 指定給F
showmessage(inttostr(F(3,5)));
end;end;
沒有留言:
張貼留言