为了好玩,我想更新我的帕斯卡知识,所以必须再次复习基础知识。
让我们看看这个Java代码:
class ArrayTest {
public static void main(String args[]){
int[] numArray = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
}
}将其改写为Pascal:
type
arrNum = array[1..10] of integer;
var
BBB: arrNum;
begin
BBB := [1,2,3,4,5,6,7,8,8,10];
end.在MacOS上用FPC 3.2.2编译代码,结果是:
arrnum.pas(7,12)错误:不兼容类型: got“{Const数组/常量开放}数组> Of ShortInt”预期的"arrNum“ arrnum.pas(10)致命:编译模块出现一个错误,停止 致命:编译中止错误: /usr/local/bin/ppcx64 64返回一个错误退出代码
这里怎么了?
发布于 2022-04-11 17:11:23
使用构造函数的类似语法可用于动态数组(BBB),但不适用于静态数组。静态初始化可以通过将类型常数赋值给变量(BB10:=CCC10)或定义初始化常量(DDD10)来完成。
下面的代码演示了一些情况:
{$mode delphi}
type
arrNum = array of integer;
arrNum10 = array[0..9] of integer;
const CCC10 : arrNum10 = (1,2,3,4,5,6,7,8,9,10);
var
BBB: arrNum;
BBB10 : arrNum10;
DDD10 : arrnum10 = (1,2,3,4,5,6,7,8,9,10);
begin
BBB := ArrNum.Create(1,2,3,4,5,6,7,8,8,10);
BBB10:=CCC10;
end.发布于 2022-04-11 16:16:22
如果声明为数组,则应使用for循环进行init。
type
arrNum = array [ 1..10] of integer;
var
BBB: arrNum;
i: integer;
begin
for i:=1 to 10 do
BBB[i] := i;
end.发布于 2022-04-11 16:21:01
您可以在声明中初始化它:
program ideone;
type
arrNum = array[1..10] of integer;
var
BBB: arrNum = (1,2,3,4,5,6,7,8,8,10);
i: Integer;
begin
for i := 1 to 10 do
Write(BBB[i])
end.https://stackoverflow.com/questions/71830962
复制相似问题