1. 배열이란?
같은 형식의 데이터를 다수로 저장하는 '자료구조'이다.
배열은
int arr1[4] = { 1, 2, 3, 4};
이런 형식으로 구성되어 있으며,
변수명 뒤에 숫자로 크기를 구성해 줄 수 있고, 대입 연산자를 통해 값을 정해줄 수 있다.
반드시 모든 배열에 값을 넣을 필요는 없으며, 초기화가 목적이면 중괄호만 대입하여 초기화를 해줄 수 있다.
int arr2[8] = { 1, 2, 3 };
arr[0] | arr[1] | arr[2] | arr[3] | arr[4] | arr[5] | arr[6] | arr[7] | |
값 | 1 | 2 | 3 | 0 | 0 | 0 | 0 | 0 |
인덱스 | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 |
주소 | ~97FA58 | ~97FA5C | ~97FA60 | ~97FA64 | ~97FA68 | ~97FA6C | ~97FA70 | ~97FA74 |
해당 표는 arr2에 대한 값, 인덱스, 주소이다.
값은 지정한 값 이외에는 초기화가 된 상태이므로, 이외의 값은 정수형변수의 초기값인 0으로 초기화가 되었고,
인덱스는 시작값이 0부터 시작되므로 인덱스의 최대값은 항상 (배열의 크기-1)로 유지된다.
주소는 실행이 되는 순간 메모리에 할당이 되어, 크기가 구성이 되는데, 할당된 주소값도 각 배열마다 가지고 있다.
정수형 변수는 4Byte를 가지고 있으므로, 주소값 역시 4Byte씩 커지는 것을 볼 수 있다.
이차원배열
이차원배열은 '배열의 집합'이라고 생각하면 된다.
int arr[2][3] = {
{1, 2, 3},
{4, 5, 6}
}
이차원 배열의 코드는 위와 같이 구성되어있고, 행과 열로 구성되어있다.
arr[2][3] | 1열 | 2열 | 3열 |
1행 | arr[0][0] | arr[0][1] | arr[0][2] |
2행 | arr[1][1] | arr[1][1] | arr[1][2] |
arr[0][0] | arr[0][1] | arr[0][2] | arr[1][0] | arr[1][1] | arr[1][2] | |
값 | 1 | 2 | 3 | 4 | 5 | 6 |
주소 | ~97FA58 | ~97FA5C | ~97FA60 | ~97FA64 | ~97FA68 | ~97FA6C |
그리고 이에 해당하는 주소값은 해당 행이 끝나면 다음 행이 이어받는 형식이다.
사실상 행 단위로만 끊었다 뿐이지 실질적으로는 한 줄로 저장되어있다.
':: 프로그래밍 :: > 수업 내용' 카테고리의 다른 글
2024.02.28 C++) 네임스페이스, 메모리패딩, 오버로딩, 접근제한자 (1) | 2024.03.06 |
---|---|
2024.02.27 C++) 구조체, 포인터, 값에 의한 호출 / 참조에 의한 호출 (0) | 2024.03.06 |
2024.02.26 C++) 함수, 열거형 (0) | 2024.03.04 |
2024.02.21 C++) 조건문('if ~else',' ~else if', 중첩 if문, switch) (0) | 2024.02.22 |
2024.02.20 코딩 스타일, 자료형의 크기와 범위, 연산자 (1) | 2024.02.21 |