负数组索引

Xor*_*-el 0 c# arrays delphi

我有一段代表这样的C#代码

digitsResPtr[-1] = digitsPtr[0] << rightShiftRev;
Run Code Online (Sandbox Code Playgroud)

where digitsResPtrdigitsPtr是一个指向UInt32数组的指针,rightShiftRev是一个整数.

我想知道这个Delphi表示是否正确?

(digitsResPtr - 1)^ := digitsPtr[0] shl rightShiftRev;
Run Code Online (Sandbox Code Playgroud)

我的主要问题是负面索引.

谢谢.

德尔福XE7 UP 1.

Dav*_*nan 5

我认为用指针算法做这个是最干净的.例如

{$POINTERMATH ON}
....
(digitsResPtr - 1)^ := digitsPtr[0] shl rightShiftRev;
Run Code Online (Sandbox Code Playgroud)

要么

{$POINTERMATH ON}
....
digitsResPtr[-1] := digitsPtr[0] shl rightShiftRev;
Run Code Online (Sandbox Code Playgroud)

我假设它digitsResPtr有类型^UInt32并指向数组中间的某个位置.换句话说,您必须以某种方式或其他方式分配数组,然后初始化digitsResPtr如下:

digitsResPtr := @digitsRes[5];
Run Code Online (Sandbox Code Playgroud)