在Pascal中定义索引为'a'..'z'和'0'..'9'的单个数组

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

我现在正在学习该语言,因此在语法方面我确实并不坚强,无法在线找到答案。

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

Counts: Array['a'..'z','0'..'9'] of Integer;

我收到无法解决的错误:

Incompatible types: got "ShortInt" expected "Array[48..57] Of SmallInt

是否可以定义这样的数组?谢谢。

pascal
1个回答
0
投票

声明

Counts: Array['a'..'z','0'..'9'] of Integer;  

表示Array[97..122] of Array[48..57] of Integer。它是一个二维数组。

用作:

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.
© www.soinside.com 2019 - 2024. All rights reserved.