2013年1月28日 星期一

Delphi 學習筆記 指標


@』是一個運算子,放在變數前面,傳回該變數再記憶體所在之位置。@也可以傳回程序或函數的記憶體位置。『^』有兩種用法,放在型態前面表示要宣告一個指標變數。放在指標變數後面,則為一個運算子,會傳回指標變數所紀錄的記憶體位置的資料值。


ex:

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;

沒有留言:

張貼留言