int swap(int *a ,int *b)
{
     
     if(*a>*b)
          return *a;
     else
          return *b;
}上面主要是C的函數是按地址傳值的。那麼在delphi中如何按地址傳值,而不是值傳递。

解决方案 »

  1.   

    function swap(var a, b: integer): integer;
    begin
      if a > b then
        result := a
      else
        result := b;
    end;delphi中类似c的按地址传参数可以使用var型的参数,或者直接使用指针也是可以的
      

  2.   

    function Swap(a, b: PInteger): Integer;
    begin
      if a^ > b^ then
        Result := a^
      else
        Result := b^;
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      A, B: Integer;
    begin
      A := 10;
      B := 20;
      ShowMessage(IntToStr(Swap(@A, @B)));
    end;
      

  3.   

    jacky_shen(jacky) 就是用指针