최종 수정 : 24.12.27
배열
1. 배열의 정의
배열은 동일한 자료형을 가진 자료들을 기억공간(메모리)에 연속으로 저장된 자료구조로, 대표적인 순서리스트이다. 정수형 자료 5개를 저장하려면 5개의 변수가 필요한데, 이때 서로 다른 변수를 만들기 때문에 기억공간의 서로 다른 위치에 저장된다.
연접 리스트 = 순서 리스트 = 순차 리스트
1) 변수 특징
접근이 느림
☞ 각 변수는 불연속 주소로 되어있어 연속적인 접근이 필요할 경우 변수마다 주소계산이 필요하다.
기억 효율 감소
☞ 사용공간과 사용하지 않은 공간 사이의 갭(gap)에 의해 사용되지 못하는 공간이 발생하여 기억공간의 효율이 낮아진다.
2) 배열 특징
빠른 접근 속도
☞ 배열로 표기된 경우는 연속적인 기억공간을 사용한다.
기억 효율 좋음
☞ 연속적인 공간 사용에 따라 낭비되는 공간이 없어 기억효율이 100%가 된다.
단점
☞ 중간에 삽입하거나 삭제하는 경우 배열 전체를 복사해야 하는 단점이 있다.
2. 1차원 배열
1) 선언 형식
자료형 배열명[배열 원소 개수]
배열을 접근하기 위해서는 배열명과 인덱스(index, 첨자)를 이용하여 접근한다. 선언된 배열은 모두 동일한 자료형을 가지고 0부터 배열크기 -1까지 인덱스를 갖는다.
2) 배열의 초기화
초기화는 {}를 이용하여 설정하고, 각 원소를 하나씩 개별적으로 할 수도 있다.
3. 다차원 배열
1) 선언 형식
2차원 배열 : 자료형 배열명[행개수][열개수]
3차원 배열 : 자료형 배열명[면개수][행개수][열개수]
논리적인 공간은 행/렬, 면/행/렬로 구분하여 표현하지만, 실제 기억공간에서 물리적인 공간은 1차원 배열과 동일하게 연속적인 공간에 저장된다. 논리적으로 구분하는 이유는 대표성을 가지기 위해서이다. 1차원 배열은 특정 데이터를 구분할 방법이 없다. 대표성은 배열명, 면, 행을 통하여 배열 원소 여러 개를 하나의 그룹으로 설정할 수 있다.
- 배열명
☞ 배열 전체를 대표하거나 배열의 시작 주소 의미, 배열명은 배열 전체를 말하거나 배열의 시작주소가 된다. - 면
☞ 해당 면의 모든 원소를 대표하거나 해당 면의 시작 주소를 의미한다. - 행
☞ 해당 행의 모든 원소를 대표하거나 해당 행의 시작 주소를 의미한다.
2) 배열의 초기화
1차원 배열과 동일하게 {}를 이용하여 초기화하며, {}를 겹쳐서 사용할 수 있다.
배열명 a 1 2 3 4 5 6 |
초기화 int a[2][3] = {1,2,3,4,5,6} int a[2][3] = {{1,2,3}, {4,5,6}} |
참고
독학사 교재
댓글