指標的問題 |
答題得分者是:小傑克
|
tokiama
一般會員 發表:34 回覆:60 積分:23 註冊:2009-04-19 發送簡訊給我 |
老師跟我們說指標是一個很好很好用的東西,所以叫我們回去自己研究。
所以在下去研究了。 可是... [code delphi] procedure TForm1.Button1Click(Sender: TObject); var A:^integer; begin A^:=2; end;[/code] Button1一按下去就出現紅色差差...這是為什麼? 我只是先宣告A為指標,指像Integer的指標,然後讓A所指到的東西裡面的值為2。 不做顯示動作,這樣按下Buttom1應該不會有任何問題啊? 有誰可以教一下? |
小傑克
資深會員 發表:5 回覆:209 積分:357 註冊:2009-02-16 發送簡訊給我 |
就我的認知
var a:^integer; 是宣告一個integer的指標 而不是一個integer 差別在var b: integer ; delphi會幫你準備一個位置來存這個數字,並且有一個指標來指到這個數字 希望下面的sample能將我的意思更容易理解 var a:^integer; //宣告一個數字型態的指標A, 這種寫法編譯器沒有自動幫你生一塊實體儲存數字的記憶體 b:integer; //宣告一個數字(取得一個實體儲存數字的記憶體 & 這塊記憶體的指標B) begin b := 3; // 將3存到實體儲存數字的記憶體中 a := @b; //將A = 3的指標(也就是B) ShowMessage(IntToStr( b)); a^ := 10; // 將a指向的記憶體,也就是原來B所指的實體儲存數字的記憶體內容改成10 ShowMessage( IntToStr(a^)); ShowMessage(IntToStr( b)); //當然B也就變成10 ==================引 用 tokiama 文 章=================== 老師跟我們說指標是一個很好很好用的東西,所以叫我們回去自己研究。 所以在下去研究了。 可是... [code delphi] procedure TForm1.Button1Click(Sender: TObject); var A:^integer; begin A^:=2; end;[/code] Button1一按下去就出現紅色差差...這是為什麼? 我只是先宣告A為指標,指像Integer的指標,然後讓A所指到的東西裡面的值為2。 不做顯示動作,這樣按下Buttom1應該不會有任何問題啊? 有誰可以教一下?
------
額有朝天骨,眼中有靈光 |
tokiama
一般會員 發表:34 回覆:60 積分:23 註冊:2009-04-19 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |