배열의 선언

var

   A : array[0..5] of integer;

 

오브젝트 파스칼의 경우 c에서처럼 항상 0부터 시작하지 않는 경우도 있다.

 

예)

  A : array[28..30] of integer;

 

위와 같은 경우 루프나 index 참조시 조심해야 하는데 이때는 배열의 상한과 하한을 알려주는

Low(), High()를 사용하면 된다.

예)

  for i := Low(A) to High(A) do

       //todo

  end;

 

이차원 배열(다차원 배열)

  var

    A : array[1..2, 1..2] of integer

 

동적 배열

오브젝트 파스칼에서의 동적 배열

  선언

  var 

    A : array of string

  메모리 할당

  SetLength(A, 33);

  사용

  A[0] := 'Object Pascal';

  동적배열은 항상 0부터 시작된다.

 

메모리 해제

  A := nil;

 

동적 배열은 일반 배열과 달리 AnsiString에서 사용하는 참조 기법을 사용한다.

따라서 값 복사 시 유의해야 한다.

예)

 var

  A1, A2 : array of integer;

 begin

  SetLength(A1, 100);

  A2 := A1;

  A1[0] := 50;

  A2[0] := 3;

이 경우 A1의 값이 3으로 바뀐다.

이런 경우가 발생하지 않게 하려면 Copy 명령을 사용해야 한다.

 

이차원 동적 배열 할당

AA : array of array of integer;

원본링크 : http://blog.naver.com/PostView.nhn?blogId=skyofdus&logNo=30027965521


+ Recent posts