티스토리 뷰

배열을 선언한 후 , 첨자를 붙이지 않은 순수 배열 이름은 무엇을 의미할까 ?

 

소스코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 
public class Main {
 
    public static void main(String[] args) {
 
        int intArr[] = new int[1];
        int intNum[] = new int[1];
        int myArr[] = intArr;
 
        intArr[0= 1;
        intNum[0= 1;
 
        System.out.println("intArr -> "+intArr);
        System.out.println("intNum -> "+intNum);
        System.out.println("intArr==intNum -> "+(intArr==intNum));
        System.out.println("intArr[0]==intNum[0] -> "+(intArr[0]==intNum[0]));
        System.out.println("myArr -> "+myArr); 
        System.out.println("intArr==myArr -> "+(intArr==myArr)); 
    }
 
}
 
cs

 출력화면

배열 안에 값이 같음에도 불구하고, intArr와 intNum의 배열이름을 써서 비교를 하면 false라는 결과가 나온다.

이유는, 배열 이름은 곧 그 배열의 시작주소를 알리기 때문이다.

true라는 결과를 얻기 위해선 첨자를 붙여 그 안의 값을 비교하면 된다.

그래서 16 라인에서 true 라는 결과가 출력됨을 확인 할수가 있다.

'IT > JAVA' 카테고리의 다른 글

[정보 올림피아드] 151번  (0) 2017.07.06
[정보 올림피아드] 150번  (0) 2017.07.06
[정보 올림피아드] 555번  (0) 2017.07.06
비 정방형 배열의 생성과 접근  (0) 2017.07.06
JVM이 사용하는 메모리 영역  (4) 2017.07.06
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31