首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用类型在Pascal中初始化数组?

如何使用类型在Pascal中初始化数组?
EN

Stack Overflow用户
提问于 2022-04-11 16:04:53
回答 6查看 362关注 0票数 -1

为了好玩,我想更新我的帕斯卡知识,所以必须再次复习基础知识。

让我们看看这个Java代码:

代码语言:javascript
复制
class ArrayTest {

    public static void main(String args[]){
        int[] numArray = new int[]{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
    }
}

将其改写为Pascal:

代码语言:javascript
复制
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返回一个错误退出代码

这里怎么了?

EN

回答 6

Stack Overflow用户

发布于 2022-04-11 17:11:23

使用构造函数的类似语法可用于动态数组(BBB),但不适用于静态数组。静态初始化可以通过将类型常数赋值给变量(BB10:=CCC10)或定义初始化常量(DDD10)来完成。

下面的代码演示了一些情况:

代码语言:javascript
复制
{$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.
票数 1
EN

Stack Overflow用户

发布于 2022-04-11 16:16:22

如果声明为数组,则应使用for循环进行init。

代码语言:javascript
复制
type
    arrNum = array [ 1..10] of integer;
var
    BBB: arrNum;
    i: integer;

begin
    for i:=1 to 10 do
    BBB[i] := i;
end.
票数 0
EN

Stack Overflow用户

发布于 2022-04-11 16:21:01

您可以在声明中初始化它:

代码语言:javascript
复制
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.
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71830962

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档