delphi 中指標操作疑問。。(菜鳥

2023-05-13 05:10:11 字數 1849 閱讀 7241

1樓:匿名使用者

這個確實是個奇怪的現象,我測試了半天結果都是不行,估計是delphi為了保護pchar在堆裡面的安全進行了防寫。不過利用一個string類做一下轉換,就成功了,你可以試試:

procedure : tobject);

vars:string;

pc:pchar;

pb:pbyte;

begins:='hello';

pc :=pchar(@s[1]);把pc指向string類裡面的字串首地址。

pb :=pbyte(pc);

inc(pb);

pb^ :65 ;

showmessage(pc);/hallo

end;這可絕對不是菜鳥的問題。其實delphi裡面string類的功能非常豐富,一般不要這樣操作。 要修改其中的字元這樣就行:

procedure : tobject);

vars:string;

begins:='hello';

s[2]:=#

showmessage(s);

end;

2樓:匿名使用者

pb[3]:=65

或。pb[3]:=a';

pb^ :65; 這種賦值是錯誤的。

3樓:匿名使用者

建議使用字串string進行操作。

delphi求高手解答關於指標的問題

4樓:

1、recmemorystream變數地址。

2、被例項化的物件地址。

3、例項化物件中的memory變數地址。

recmemorysream是一個變數,根據你的定義,這個變數可以引用tmemorystream型別的例項,說白了就是 recmemorysream 這個變數是個箱子,這個箱子有自己的地址就是第一個列印出來的,箱子裡面存了一個紙條,這個紙條上寫的是物件地址,就是第二個語句列印出來的,第三個是物件內部的定義的一個public變數,列印出來就是這個變數的地址。

樓上正確,我記反了,好久沒用delphi了。

5樓:匿名使用者

recmemorystream是個物件的引用,其實就是指標第一個是指標所指向物件的地址。

第二個是指標變數所在的地址。

第三個,memory是recmemorystream的一個成員指標,所以代表該成員指標指向的記憶體的地址。

delphi指標問題

6樓:匿名使用者

這裡的變數a是指標的指標。

函式本身就是一個指標,函式據是一系列指令集合依次排列於記憶體中,@now只是取其棧頂地址。棧頂地址存放的是第一條指令。

在這裡你不能將一個函式作為引數傳給datetimetostr

7樓:匿名使用者

你的指向的是now這個函式,而你的a確實pdatetime,型別都不一致的哈,你可以這樣測試:

vara:pdatetime;

b: tdatetime;

beginnew(a);

b :=now();

a :=b;

showmessage(datetimetostr(a^))

end;-注意b變數。

直接網頁上敲出沒經過ide測試的**,你自己測試看。

8樓:匿名使用者

a和兩者的資料型別不一樣。

a是日期時間指標,而是獲得now函式入口的地址。

9樓:匿名使用者

glaciersoft說的對,兩個型別都不一樣,now是函式,a是指標變數。

DELPHI資料庫操作

用sql查詢語名進行 1 用查詢回車選定一條記錄,插入到銷售表中 假設庫存表欄位為 零件號,名稱,單價,數量 銷售表欄位為 零件號1,名稱1,單價1,數量1 insert into 銷售表 零件號1,名稱1,單價1,數量1 select 零件號,名稱,單價,數量 from 庫存表 where 條件 ...

C 裡指標變數自身值的問題,關於c 中指標變數的問題

pt 1244996 是pt的地址 p 後 p p 優先順序高,因此 地址變為了 1245000 注意整形指標 1,其實就是 4,因為整形的size是4位元組 p 1245064 是地址1245000 對應的記憶體值,是不確定的 p 1244992 是p這個指標本身在記憶體中存放的位置,這個也是不確...

c語言中,指標和陣列的區別和聯絡

區別 c語言把記憶體劃分成四個區,它把一般的變數和陣列等存在於記憶體中的棧區,所以陣列在c語言的定義中只是一組同型別的普通變數,即使這個變數有可能是指標。所以他的作用比指標小的很多,而指標可以指向任何區的任何資料,所以就會覺得指標和陣列名很像,但是必須要注意的是,陣列名只是指標中的一種,它是指標中只...