当我试图从过程传递变量数组到主程序时,过程中的
简化后的代码,同样的问题:
a[1]
应该与主程序中的arr[1]
相等,像这样:a[1] = arr[1]
a[2] = arr[2]
a[3] = arr[3]
a[4] = arr[4]
a[5] = arr[5]
a[1] = ''
a[2] = arr[1]
a[3] = arr[2]
a[4] = arr[3]
a[5] = arr[4]
简化后的代码,同样的问题:
var
arr : array[1..5] of string;
i : integer;
procedure test(var a : array of string);
var
i : integer;
begin
a[1] := 'one';
a[2] := 'two';
a[3] := 'three';
a[4] := 'four';
a[5] := 'five';
for i := 1 to 5 do writeln(a[i]);
end;
begin
test(arr);
write('-----');
for i := 1 to 5 do
begin
writeln(arr[i]);
if arr[i] = '' then writeln('NOTHING');
end;
readln
end.
arr
是从1开始的 - “array [1..5] of string;”。 - MartynAtype
子句中声明一个类型并使用它。例如:type TArr = array[1..5] of string; ... procedure Test(var a: TArr);
。 - Rudy Velthuis