所以根據this(適用於同一頁XE4到XE8):如何指針到一個類型被視爲一個指針,它指向類型的數組
當指示器保持的另一個地址變量,我們說它指向該變量在內存中的位置或存儲在那裏的數據。 對於數組或其他結構化類型,指針保存結構中第一個元素的地址。
對我來說,上述聽起來完全像this:
備註:免費帕斯卡爾把球多爲C做了同樣的方式。這意味着指向某種類型的指針可以被看作是這種類型的數組。
從這個角度來看,指針指向這個數組的zeroeth元素。
FPC例如:
program PointerArray;
var i : Longint;
p : ^Longint;
pp : array[0..100] of Longint;
begin
for i := 0 to 100 do pp[i] := i; { Fill array }
p := @pp[0]; { Let p point to pp }
for i := 0 to 100 do
if p[i]<>pp[i] then
WriteLn (’Ohoh, problem !’)
end.
的例子顯然不編譯和抱怨p
- Array type required
。我從來沒有在delphi見過這樣的shananigans,但是我對embarcadero wiki的信息感到非常困惑。維基本身沒有提供這種使用的例子。
有人可以向我解釋什麼是維基正確的意思?如果它實際上與FPC/C有任何相似之處,有人可以提供一個工作示例嗎?
我知道我會facepalm難,剛剛告訴我,該模式是默認情況下。我的錯。謝謝,將盡快接受。 – Raith
此功能是在D2009中引入的。可能他們默認設置爲false,以保持與舊版本的兼容性。 –
它適用於某些類型。自從IIRC,Borland/Turbo Pascal 7開始使用PChar(在$ X +模式下),並且自引入$ POINTERMATH以來默認爲PByte。 –