私はdelphiXE2に取り組んでおり、PIntegerに取り組んでいました。私のデルファイコードでこれを行った場合
var
P: PInteger;
testInt: Integer;
Scores: array[0..4] of Integer=(33,44,56,78,78);
begin
P := @Scores;
testInt := (P+1)^;
WriteLn(testInt);
ReadLn;
end;
このエラーが発生しました。
[DCC Error] Project1.dpr(23): E2015 Operator not applicable to this operand type
PS:testInt := (P+1)^;
23行目です
ただし、これを試すと
var
PCh: PChar;
testchar: char;
str: array[0..4] of char=('a','b','c','d','e');
begin
PCh := @str;
testchar := (PCh+1)^;
WriteLn(testchar);
ReadLn;
end;
それはうまくいきます!コンソールは 'b' を出力できます!
これがどのように発生し、いつ ((Pointer)(P)+1)^ が機能するかについては明確ではありませんか?