如何使动态数组不变?

时间:2012-11-05 22:00:24

标签: arrays const pascal freepascal turbo-pascal

在从用户读取数据后,有什么方法可以使x数组保持不变?在从用户读取值(例如y)后,有什么方法可以使变量不可修改?

program hmm;
    uses crt;
    var 
        i, y: word;
        x: array of word;
begin
    readln(y);
    y:=y-1;
    SetLength(x,y); 
    for i := 0 to y do begin
        read(x[i]);
    end;
readkey;
end.

为了使y恒定,我尝试了类似的东西,但它不起作用 - y将被设置为0.

program hmm;
    uses crt;
    var 
        i: word;
        x: array of word;
    const
    {$J+}
        y:word = 0;
    {$J-}
begin
    {$J+}
    readln(y);
    y:=y-1;
    {$J-}
    y:=0;
    SetLength(x,y); 
    for i := 0 to y do begin
        read(x[i]);
    end;
readkey;
end.

感谢您的帮助。

1 个答案:

答案 0 :(得分:3)

是。设置初始值后,请勿在代码中更改其中任何一个。

除此之外,没有办法。根据定义,动态数组是可变的,变量也是如此 - 这就是为什么他们将动态变量作为名称。