0
我有一块C#代码表示这样负数组索引
digitsResPtr[-1] = digitsPtr[0] << rightShiftRev;
其中digitsResPtr
和digitsPtr
是指向UInt32的阵列和rightShiftRev
是整数。
我想知道这个德尔福表示法是否正确?
(digitsResPtr - 1)^ := digitsPtr[0] shl rightShiftRev;
我的主要问题是负向索引。
谢谢。
德尔福XE7 UP 1.
我们没有在阵列在C#中的负索引。除非你编写你自己的索引器。 –
@ M.kazemAkhgary,谢谢你的回复,但记得我说digitsResPtr和digitsPtr是指向一组UInt32而不是数组本身的指针。 –
@ Xor-el您的C#代码使用指针的原因是以某种方式实现自定义索引器。现在你主要关心的应该是你的数组如何存储在第一位。例如,如果您有基于零的数组(第一项具有索引0),那么尝试读取索引为-1的项实际上会导致读取超出数组范围的数据。因此,如果您启用了范围检查,最有可能会收到访问冲突错误或EOutOfBound错误。所以我建议非常小心。 ... – SilverWarior