如何在Pascal中更改全局变量?

时间:2013-12-08 19:48:15

标签: arrays pascal procedure

所以我在Pascal中有这个简单的程序,它始于:

type
   arrayy=array[1..10] of integer;
var
   arr:arrayy;

然后我用arr作为参数写了一个简短的程序(让我们称之为proc)。在程序中,arr被更改。

然后,在代码的主要部分我有这样的东西:

-print arr

-proc(ARR)

-print arr

阵列完全没有变化,尽管如此。在我之前的程序中,当我遇到这个问题时,我只是将命令打印到程序中的数组,但现在我不能这样做。 我试过这样做:

procedure proc(var arr)

然后数组完全不同于它应该是的,好像它是一个新的。

是的,有人可以帮帮我吗?如何在代码的主要部分中打印更改的数组?

1 个答案:

答案 0 :(得分:1)

program ChangeArrayExample;

{ Free Pascal Compiler }

type
    IntArray = array[1..5] of integer;

var
    MyIntArray : IntArray;
    I : integer;

procedure MyProc(var MyIntArray : IntArray);
begin
    for I := Low(MyIntArray) to High(MyIntArray) do
        MyIntArray[I] := 2 * I;
end;

begin
    for I := Low(MyIntArray) to High(MyIntArray) do
    begin
        MyIntArray[I] := I;
        Writeln(MyIntArray[I]);
    end;

    MyProc(MyIntArray);
    Writeln();

    for I := Low(MyIntArray) to High(MyIntArray) do
        Writeln(MyIntArray[I]);
end.

之前的阵列:1 2 3 4 5

数组之后:2 4 6 8 10

我不确定我是否理解您的问题,所以请发布您的完整代码。