2020国产成人精品视频,性做久久久久久久久,亚洲国产成人久久综合一区,亚洲影院天堂中文av色

分享

delphi 指針操作

 貌似小白 2013-01-22

指針是存放指定類型(或未定義類型)變量內(nèi)存地址的變量,因此指針間接引用一個值。定義指針不需用特定的關(guān)鍵字,而用一個特殊字符,這個特殊字符是脫字符號(^),見下例:

type
  PointerToInt = ^Integer;

一旦你定義了指針變量,你就可以用@ 符號把另一個相同類型變量的地址賦給它。見下例:

var
  P: ^Integer;
  X: Integer;
begin
  P := @X;
  // change the value in two different ways
  X := 10;
  P^ := 20;  

如果定義了一個指針P,那么P表示指針所指向的內(nèi)存地址,而P^表示內(nèi)存所存儲的實際內(nèi)容。因此,在上面的代碼中, P^ 與X相等。

除了表示已分配內(nèi)存的地址外,指針還能通過New 例程在堆中動態(tài)分配內(nèi)存,不過當你不需要這個指針時,你也必須調(diào)用Dispose 例程釋放你動態(tài)分配的內(nèi)存。

var
  P: ^Integer;
begin
  // initialization
  New (P);
  // operations
  P^ := 20;
  ShowMessage (IntToStr (P^));
  // termination
  Dispose (P);
end;

如果指針沒有值,你可以把nil 賦給它。這樣,你可以通過檢查指針是否為nil 判斷指針當前是否引用一個值。這經(jīng)常會用到,因為訪問一個空指針的值會引起一個訪問沖突錯誤,也就是大家知道的“一般保護錯”(GPF)。

Delphi 還定義了一個Pointer 數(shù)據(jù)類型,它表示無類型的指針(就象C語言中的void* )。如果你使用無類型指針,你應(yīng)該用GetMem 例程,而不是New例程,因為GetMem 例程能用于內(nèi)存分配大小不確定的情況。

實際上,Delphi 中必須使用指針的情況很少,這是Delphi開發(fā)環(huán)境一個誘人的優(yōu)點。雖然如此,若要進行高級編程和完全理解Delphi 對象模型,理解指針是很重要的,因為Delphi 對象模型在幕后使用了指針。

注意:雖然在Delphi中不常使用指針,但是你經(jīng)常會用一個極為相似的結(jié)構(gòu)--引用(references)。每個對象實例實際上是一個隱含的指針,或說是對其實際數(shù)據(jù)的引用,利用引用,你能象用其他數(shù)據(jù)類型一樣使用對象變量。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導購買等信息,謹防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多