프로그래밍/개발

배열의 인덱스는 왜 0부터 시작할까?

Yanoo 2024. 1. 13. 18:08
728x90
반응형

 

🎯 결론

간단하게 말해서 계산하기 쉬워서이다.

이것은 배열의 크기가 아무리 커도 빠른 속도로 해당 위치의 item을 가져올 수 있도록 한다.

 

🤽 설명

자세히 알아보면

 

int[] numbers = {1 ,2, 3, 4, 5}

와 같은 배열은 두 가지 요소로 표현한다.

- 배열의 시작 주소

- 각 요소들의 size (여기서는 int이므로 4 bytes)

 

그림을 간단히 보면

이런 구조를 가지게 된다. 여기서 각 요소들의 시작 주소를 계산해보자.

 

  1. 첫 번째 요소
    첫 요소는 시작점과 같으므로 1000을 갖는다.
  2. 두 번째 요소
    시작점에 요소의 사이즈 4를 더해 1004(1000 + 4 * 1)
  3. 세 번째 요소
    시작점에 요소의 사이즈 4를 두 번 더해 1008(1000 * 4 * 2)
    ...

 

이렇게 보면 첫 번째 요소도 1000 + 4 * 0과 같다.

 

 

이제 인덱스의 관점으로 보자 내가 배열의 4000번 째의 요소의 시작 주소를 알고 싶다면

1000 + 3999 * 4 (시작주소 + (인덱스 -1) * element size) 로 계산 한다면 곧 바로 해당 주소를 알 수 있다.

(속도가 굉장히 빠르게 조회할 수 있다!)

 

728x90
반응형