我正在研究 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)^ 可以工作?