怎样在procedure中传值与传地址

解决方案 »

  1.   

    如果对象是参数,自是传地址
    如果是普通类型做参数,使用var表示传地址,不用表示传值。
      

  2.   

    procedure test(str:String;var Getstr:String);
    //str 传入参数
    //Getstr 传出参数
      

  3.   

    procedure Test(A:String;var I:integer;S:integer=0);
    A:传数值
    I:传地址,也就是说I的数值会在此函数内部被改变!
    S:缺省的参数!
      

  4.   

    snake_eye(黄昏深处的白骨盾牌)同意
      

  5.   

    procedure test (Value: Integer; var Reference: Integer; out OutVar: Integer);
    ::
    Value: 传值;只能传入数据,不能传出数据。
    Reference: 传入引用,也就是变量的地址;也可不指定变量的类型;
               既可传入也可传出数据变量。
    OutVar: 也是传入引用,但只能传出数据,不能传入数据。Examples:function DoubleVal (Val: Integer) : Integer;
    begin
      Val := Val * 2;
      Result := Val;
    end;function DoubleRef (var Val: Integer): Integer;
    begin
      Val := Val * 2;
      Result := Val;
    end;var
      I, J: Integer;
    begin
      I := 2;
      J := DoubleVal (I); // I = 2; J = 4;
      //如果调用下面的话,
      // J := DoubleRef (I); // I = 4; J = 4;