배열
동일한 이름으로 참조되는 연속된 메모리에 할당된 자료 구조
같은 데이터타입으로 묶어서 하나의 공간처럼 사용할 수 있는 자료 구조
관련 있는 데이터를 묶어서 처리할 필요가 있을 때 유용한 자료 구조이다
효과
많은 수의 변수 이름을 생성할 필요가 ㅇ벗다
동일한 이름을 사용하여 반복문으로 구현하기 용이아다
용어
요소(elements) 배열을 구성하는 각 항목
배열(array)명 전체 공간에 대한 대표 이름(변수명)
크기 배열 요소의 개수
첨자(index) 각 요소에 부여되는 위치 정보
선언
데이터 타입 배열명 [크기];
배열 크기 : 양의 정수, 매크로 상수, 관련 연산식으로 지정
변수, const 상수 불가
참조
각 요소에 대한 참조는 index를 이용
0 ~ size-1
배열명[index[
범위 밖의 요소를 참조하는 경우 실행(run time) 오류가 발생한다
초기화
형식 : 데이터타입 배열명 [크기] = {초기값1, .... };
각 요소는 순서대로 인덱스 0부터 초기화
배열 크기보다 초기화 요소 수가 적으면 나머지는 0으로 초기화
초기화하지않은 지역 배열 요소는 쓰레기값을 가진다
선언과 초기화를 같이 하는 경우 배열 크기는 생략이 가능하다
2차원 배열
배열을 이차원 형태로 확장
2차원은 index가 2개
index의 수가 배열의 차수
프로그래머는 2차원 형태이나 컴퓨터는 일차원 구조이다
데이터타입 배열명[행 크기][열 크기];
이차원 배열의 초기화
행 단위로 { } 로 붂어서 초기화 (열 크기만큼 묶음)
초기값을 생략하면 나머지 원소를 0으로 초기화한다
short data[2][3] = { {1,2,3}, {4,5,6} }; // 3개씩 묶어서 초기화
short data[2][3] = {1,2,3,4,5,6};
이차원 배열에서는 행 크기는 생략이 가능하나 열 크기는 생략이 불가능하다
int a[][2] = {1,2,3,4,5,6}; // int a[3][2]로 할당 초기값으로 2개씩 묶으면 3개가 나오니까
int b[3][] = {1,2,3,4,5,6}; // 컴파일 에러. 여러 방법으로 열을 나눌 수 있기에 안된다. 몇개씩 묶는지 알 수 없음
3차원 배열
필요에 따라 다차원 배열 선언이 가능하다
데이터타입 배열명 [면][행][열]
동일한 초기화 방법을 사용
5개의 반에서 50명 학생의 개별로 3과목 성적 처리
int score[5][50][3];
배열
배열은 하나의 이름으로 참조되는 자료 구조이다
배열은 동일한 데이터 타입의 묶음이다
배열의 index는 0부터 시작한다
배열은 연속된 메모리 공간의 집합이다