Pascal 定义索引为';a'';z';和';0'';9';帕斯卡语

Pascal 定义索引为';a'';z';和';0'';9';帕斯卡语,pascal,Pascal,我现在正在学习这门语言,所以在语法方面我真的不是很强,我无法在网上找到答案 我可以轻松地将数组拆分为两个数组,但当我尝试定义如下内容时: Counts: Array['a'..'z','0'..'9'] of Integer; 我得到了我无法解决的错误: Incompatible types: got "ShortInt" expected "Array[48..57] Of SmallInt 这样定义数组可能吗?谢谢。声明 Counts: Array['a'..'z','0'..'9']

我现在正在学习这门语言,所以在语法方面我真的不是很强,我无法在网上找到答案

我可以轻松地将数组拆分为两个数组,但当我尝试定义如下内容时:

Counts: Array['a'..'z','0'..'9'] of Integer;
我得到了我无法解决的错误:

Incompatible types: got "ShortInt" expected "Array[48..57] Of SmallInt
这样定义数组可能吗?谢谢。

声明

Counts: Array['a'..'z','0'..'9'] of Integer;  
表示整数数组[48..57]的
数组[97..122]
。它是一个二维数组

将其用作:

Counts['a','0'] := 42; 
如果您的目的是创建一个一维数组,其中包含索引间隙,那么这是不可能的


从中看到的错误是因为该数组的访问方式类似于一维数组,可能是这样的:

program Hello;
var
  Counts: Array['a'..'z','0'..'9'] of Integer;
begin
  Counts['a'] := 42;//Error: Incompatible types: got "ShortInt" expected "Array[48..57] Of SmallInt"
end.

您是否尝试将二维数组声明为类型,然后将其分配给变量:

Type
  twoD = Array['a'..'z','0'..'9'] of Integer;
Var
  V2: twoD

您的声明表示整数数组[48..57]的
数组[97..122]
。将其用作:
计数['a','0']:=42如果您的目的是创建一个一维数组,其中包含一个索引间隙,那么这是不可能的。这一行在这里编译得很好。你确定你的错误在那一行吗?@MarcovandeVoort,
Counts['a']:=42
将给出
E2010不兼容的类型:Delphi中的“整数数组[48..57]和“整数”
。我猜OP看到的是一个类似的错误。你使用的是哪种Pascal编译器?@MartynA这里的那个: