怎么用指针 |
尚未結案
|
小丫123
初階會員 ![]() ![]() 發表:85 回覆:62 積分:29 註冊:2004-08-31 發送簡訊給我 |
|
timhuang
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
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!! |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |