如何在 Pascal 中给数组赋值?

问题描述 投票:0回答:1

我收到一个我不明白的错误。我正在尝试为 pascal 中的数组元素分配一个值。

function TestingThing() : Integer;
type
  IntegerArray  = array[0..$effffff] of Integer;
  PIntegerArray = ^IntegerArray;
var
  I: Integer;
  D: PIntegerArray;
begin
  for I := 0 to 5 do
    D[ I ] := I;
end; 

这给了我一个错误

D[I] := I

Error: Incompatible types: got "LongInt" expected "IntegerArray"

delphi pascal
1个回答
2
投票

D
是一个指向整数数组的指针,它不是像您期望的那样指向单个整数的指针。

因此,当您执行

D[I]
时,您正在对
D
进行索引,并且结果元素是一个数组,并且您无法将值分配给数组,因此会出现错误。

您需要:

    在索引到它指向的数组之前,
  • 取消引用

    D

    D^[ I ] := I;

  • 或者,您需要将

    D
    更改为指向数组中第一个
    PInteger
    Integer
    ,然后
    D[I]
    将按预期工作。

© www.soinside.com 2019 - 2024. All rights reserved.