논리적으로 표현한 배열의 기억공간
- 5개의 int 값을 저장할 수 있는 연속적인 저장공간
- 배열의 이름만 사용할 경우, 배열의 시작 위치를 나타낸다.
- 첨자의 범위는 0~4가 된다.
- int 는 4byte 의 기억공간을 가지므로, 총 20byte의 기억공간을 차지한다.
\[a \rightarrow |\,a[0]\,|\,a[1]\,|\,a[2]\,|\,a[3]\,|\,a[4]\,|\]
물리적으로 표현한 배열의 기억공간
- 선형 메모리 주소 공간 내 연속적인 영역에 배열 공간을 할당한다.
- 배열의 앞, 뒤에 다른 자료가 배치될 수 있다. 따라서 인덱스를 통해 접근할 때는 배열 밖을 접근하지 않도록 주의해야 한다.
- 배열의 요소 접근은 컴파일러가 검사할 수 없으므로 특히나 개발자가 주의해야 한다.
- 자료형이 몇 바이트를 차지하는가는 하드웨어 아키텍처에 따라 다를 수 있으므로, 배열의 각 요소의 크기, 그리고 배열의 전체 크기는 하드웨어에 따라 다를 수 있다.
- 배열명
a는 배열의 시작 위치를 나타낸다.
1
2
3
4
5
6
7
8
9
10
11
12
13
| |---------|
a, a[0] --> | a[0][0] |
|---------|
| a[0][1] |
|---------|
| a[0][2] |
|---------|
| a[1][0] |
|---------|
| a[1][1] |
|---------|
| a[1][2] |
|---------|
|
Reference
C 프로그래밍 (김형근, 곽덕훈, 정재화 공저)
C 프로그래밍 강의 (방송통신대 - 이병래)
Comments