Copy를 쓰면 A1, A2는 동일한 메모리 번지를 가집니다.
따라서 둘중 어느놈에게 값을 넣더라도 A1, A2는 같은 값을 가지게 되죠.
사람 님이 쓰신 글 :
: 안녕하세요...
: C만하다가 델파이 공부중인 사람입니다.....
: 근데 왜 밑의 결과가 26인지 이해가 안되어서...
: 첫번째 1 이 나온건 이해가 되는데... 두번째도
: 이차원배열로 선언한후...당연히 1 이 나올줄 알았는데... 26이 나오네요.
: 부탁드립니다...
:
: 그리고 지금 델파이 책 보고있는게...
: 1. 정보문화사 철저공략 델파이 7 Click ....(그리스사람...그림있는책 )
: 2. 성안당 누구나 쉽게 배우는 델파이 7
:
: 이 두권인데...종은책 맞나요... 당장 급한게 DB 쪽은 아니라서....
: 그냥 파스칼 문법 많이 나와있고...특히 파일처리 쪽으로 많이 나와있는 책 있으면
: 좋겠는데...책의 대부분이 모두 DB 관련 내용이네요...
:
:
: procedure TForm1.Button7Click(Sender: TObject);
: var
: A1, A2 : array of Integer;
: begin
: SetLength(A1, 4);
:
: A2 := Copy(A1);
: A1[0] := 1;
: A2[0] := 26;
: ShowMessage(IntToStr(A1[0])); ----> 1
: end;
:
: procedure TForm1.Button7Click(Sender: TObject);
: var
: A1, A2 : array of array of Integer;
: begin
: SetLength(A1, 4, 4);
:
: A2 := Copy(A1);
: A1[0,0] := 1;
: A2[0,0] := 26;
: ShowMessage(IntToStr(A1[0,0])); ---> 26 왜 26이 나오는지...
: end;
|