函数用到了数组参数,可对具体变量赋值的时候却提示类型不一致:
procedure setarystr(arystr:array of string);
begin
  arystr[1,1]='';
end;
这么简单竟然编译不过去.
如果改成:
procedure setarystr(arystr:array of string);
begin
  arystr[1,1]=' ';;//加了个空格
end;

var
  arystr:array[1..2,1..10] of string;procedure setarystr();
begin
  arystr[1,1]='';
end;
都没有错误.帮忙!谢谢 !

解决方案 »

  1.   

    procedure setarystr(arystr:array of string);
    begin
      arystr[1,1]='';//错误
    end;
    arystr[1]是字符串类型,
    arystr[1,1]就是字符类型。你把''赋值到字符类型当然出错,就和
    var c:char; 
    c:=''是错误的一样。var
      arystr:array[1..2,1..10] of string;
    procedure setarystr();
    begin
      arystr[1,1]='';
    end;
    这时候arystr[1,1]是字符串类型。
    但arystr[1,1,1]又是字符类型了。
      

  2.   

    谢谢, windindance(风舞轻扬)的分析,可我想使用一个2维的字符串类型的参数,那到底怎么写才对呢?
    搞了两天了,搞的我都晕了.
      

  3.   

    多维数组应该是这样定义
    var
    asstr:array[1..2,1..3] of string;
    或者
    var
    asstr:array[1..2] of array[1..3] of string;
      

  4.   

    参数中用asstr:array of array of string
      

  5.   

    想使用一个2维的字符串类型的参数:
    type 
      TDoubleArray = array of array of string;var
      asstr:TDoubleArray;procedure setarystr(arystr:TDoubleArray);setarystr(assstr);