線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1100
推到 Plurk!
推到 Facebook!

怎么用指针

尚未結案
小丫123
初階會員


發表:85
回覆:62
積分:29
註冊:2004-08-31

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-17 16:16:47 IP:218.64.xxx.xxx 未訂閱
请教各位在delphi中指针是怎么用的
timhuang
尊榮會員


發表:78
回覆:1815
積分:1608
註冊:2002-07-15

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-18 22:45:21 IP:220.132.xxx.xxx 未訂閱
Hi, 關於 pointer, 在 c/c++ 是很常見的用法, 但在 delphi 是確實比較少用, 不過 delphi 中也是可以用的, 而且也很方便, 只要注意一下 ^ 及 @ 的意義即可. 在 delphi中要用 pointer 得先宣告原型, 如 Integer 的 pointer 定義為 ^Integer, 我們先定義 ^Integer 為 PInteger, 接下來, 便可以宣告變數 pInt 為 PInteger 型態, 以下為例子,    
type
  PInteger = ^Integer;    ...    var
  pInt : PInteger;
  i: Integer;
begin
  i := 5;
  pInt := @i;
  pInt^ := 10;
  ShowMessage(IntToStr(i));
end;
上面 pInt 為一個指向 Integer 的指針(指標, pointer), 我們先將其設為 i 的位址, 所以會用到 @ 符號, 將 i 的位址傳給 pInt, 如此一來便能用 pInt^ 來代表 i 囉, 如後面的程序所示, 將 pInt^ 設為 10 後, 再 show 出 i 就變為 10 囉! 另外可以搭配 New, Dispose 來做為動態配置變數, 如下,
var
  pInt: PInteger;
begin
  pInt := New(PInteger);
  pInt^ := 100;
  ShowMessage(IntToStr(pInt^));
  Dispose(pInt);
end;
pInt 原來是指針, 後來利用 New 來配置記憶體後, 即可正常使用, 但記得最後要利用 Dispose 釋放, 避免 memory leak!!
系統時間:2024-06-30 18:21:36
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!