'2차원 배열'에 해당되는 글 1건

  1. 2009.03.24 배열 참조와 2차원 배열의 선언
Programming/JAVA2009.03.24 16:10

배열 참조

 C에서 배열의 이름이 그 배열의 포인터를 가르키는 것과 같이 Java에는 배열의 이름이 참조값을 가진다.
그러므로 다음과 같이 사용하면 두개의 변수로 하나의 배열을 다룰수 있다.

int[] num = {1,2,3,4,5};
int[] num_1 = num;
int[] num_2 = num_1;


위의 세 변수 num, num_1, num_2는 모두 같은 참조값을 가지고 있기 때문에 하나의 배열이라고 볼수 있다.
만약 하나의 변수이름으로 값을 수정하게 되면 3개의 값이 다 바뀌는것 같을 것이다.

num_2[0] = 9;
for(i=0;i<num.length;i++)
     System.out.println("num["+i+"] : "+num[i]+"\tnum_1["+i+"] : "+num_1[i]+"\tnum_2["+i+"] : "+num_2[i]);


위의 결과는 다음과 같다.

num[0] : 9     num_1[0] : 9     num_2[0] : 9
num[1] : 2     num_1[1] : 2     num_2[1] : 2
num[2] : 3     num_1[2] : 3     num_2[2] : 3
num[3] : 4     num_1[3] : 4     num_2[3] : 4
num[4] : 5     num_1[4] : 5     num_2[4] : 5


3개의 변수는 하나의 배열 참조값을 공유하고 있는것이다. 이것이 참조이며 반드시 데이터형은 같아야 한다.

public void copy(int[] A, int[] B)
{
     for(int i=0;i<A.length;i++)
          B[i] = A[i];
}


A와 B 모두 참조값을 받는다. 그러므로 A와 B를 변경하면 매개변수로 넘긴 배열도 변경된다. C언어 에서는 포인터를 사용해야할 이런일이 아주 쉽게 된다.

2차원 배열 선언

1차원 배열 선언과 거의 같다.

int[][] num = new int[2][3];
int[][] num_1 = new int[2][3] {{1,2,3}, {4,5,6}, {7,8,9}};
int[][] num_2 = {{1,2,3}, {4,5,6}, {7,8,9}};

신고
Posted by 초프(초보 프로그래머)