프로그래밍/개발
배열의 인덱스는 왜 0부터 시작할까?
Yanoo
2024. 1. 13. 18:08
728x90
반응형
🎯 결론
간단하게 말해서 계산하기 쉬워서이다.
이것은 배열의 크기가 아무리 커도 빠른 속도로 해당 위치의 item을 가져올 수 있도록 한다.
🤽 설명
자세히 알아보면
int[] numbers = {1 ,2, 3, 4, 5}
와 같은 배열은 두 가지 요소로 표현한다.
- 배열의 시작 주소
- 각 요소들의 size (여기서는 int이므로 4 bytes)
그림을 간단히 보면
이런 구조를 가지게 된다. 여기서 각 요소들의 시작 주소를 계산해보자.
- 첫 번째 요소
첫 요소는 시작점과 같으므로 1000을 갖는다. - 두 번째 요소
시작점에 요소의 사이즈 4를 더해 1004(1000 + 4 * 1) - 세 번째 요소
시작점에 요소의 사이즈 4를 두 번 더해 1008(1000 * 4 * 2)
...
이렇게 보면 첫 번째 요소도 1000 + 4 * 0과 같다.
이제 인덱스의 관점으로 보자 내가 배열의 4000번 째의 요소의 시작 주소를 알고 싶다면
1000 + 3999 * 4 (시작주소 + (인덱스 -1) * element size) 로 계산 한다면 곧 바로 해당 주소를 알 수 있다.
(속도가 굉장히 빠르게 조회할 수 있다!)
728x90
반응형