Q&A

  • 함수인자중 배열은?.
예를 들어 아래와 같은 함수가 있다고 가정했을 때...



function ABC(a : integer; c : array of string) : integer;

begin

Label1.caption := c[1];

Label2.caption := c[2];

end;



procedure TForm1.Button1Click(Sender: TObject);

var

x : integer;

y : array[1..20] of string;

begin

x := 3;

y[1] := '1';

y[2] := '2';



ABC(x, y);



end;



ABC 함수를 호출하면 배열로 선언된 것들은 call by reference이기 때문에

ABC 함수에서는 y[0]부터 참조하는 겁니까???



1  COMMENTS
  • Profile
    골초 2001.08.20 01:44
    방금 보여진 예제는 call by reference가 아닙니다. 그 이유는 function ABC의 파라메터중 c : 로 하셨기 때문입니다. var c : 로 하심 call by reference가 됩니다.

    아래같은 경우에는 단순히 보내진 c란 array를 copy해서 쓰시기 때문에 값또한 외부에서 보내진 값과 똑 같습니다.



    델초보 wrote:

    > 예를 들어 아래와 같은 함수가 있다고 가정했을 때...

    >

    > function ABC(a : integer; c : array of string) : integer;

    > begin

    > Label1.caption := c[1];

    > Label2.caption := c[2];

    > end;

    >

    > procedure TForm1.Button1Click(Sender: TObject);

    > var

    > x : integer;

    > y : array[1..20] of string;

    > begin

    > x := 3;

    > y[1] := '1';

    > y[2] := '2';

    >

    > ABC(x, y);

    >

    > end;

    >

    > ABC 함수를 호출하면 배열로 선언된 것들은 call by reference이기 때문에

    > ABC 함수에서는 y[0]부터 참조하는 겁니까???

    >