메모리 공간에 저장되는 순서와 밀접한 관련이 있음.
메모리 주소값은 컴퓨터가 실행될 때 알 수 있기 때문에 추상화된 인덱스 값으로 지정해놓음.
var arr = [100, 200, 300, 400, 500];
// 메모리 주소
ooffff00 100
ooffff04 200
ooffff08 300
ooffff0c 400
ooffff10 500
// 메모리 주소
ooffff00 100 [0]
ooffff04 200 [1]
ooffff08 300 [2]
ooffff0c 400 [3]
ooffff10 500 [4]
void create(int n) {
int a[n];
int i;
for(i=0; i < n; i++) {
a[i] = 0; // 초기값 0으로 저장.
}
}
create(5) // 5칸 배열 생성.
# define arr_size 5
int retrieve(int *arr, int i) {
if(i >= 0 && i < arr_size)
return arr[i];
else {
printf("error.\n");
return(-1);
}
}
void store(int *arr, int i, int e) {
if(i >= 0 && i < arr_size) {
arr[i] = e;
} else printf("error.\n");
}
store(arr, 3, 30); // arr배열 [3]에 값30 저장.
❕ 3을 지정해서 3번째가 아닌 인덱스i번째에 저장.