포털:고등학교/정보·통신 계열 전문 교과(2015)/프로그래밍/배열
배열
편집배열은 동일한 타입의 데이터가 여러 개 저장되어 있는 데이터 저장장소이다. 동일한 자료형을 가진 변수들을 한 번에 정의하고, 배열의 주소에 해당하는 첨자를 이용하여 배열 안의 자료를 구분한다.
예를 들어, 프로그램에서 300명의 이름과 키를 기억하게 만드려면 많은 양의 변수가 필요하다. 하지만 배열을 사용한다면 이 300개를 한번에 선언하여 쉽고 빠르게 해결이 가능하다. 이처럼 프로그램에서는 문제 해결을 위해 데이터를 저장할 수 있는 다량의 변수를 사용한다. 변수 하나에는 하나의 데이터만 저장할 수 있으므로 여러 자료형의 데이터를 저장하고 처리하려면 그만한 양의 변수를 지정하여 사용해야한다. 그때, 배열을 사용하면 이 작업을 보다 효율적으로 끝낼 수 있다
1차원 배열
편집하나의 행 또는 하나의 열로만 이루어진 배열을 1차원 배열이라고 한다. 같은 자료형과 이름으로 여러 개의 기억 장소를 지정할 때 1차원 배열을 사용한다.
배열의 선언
편집1차원 배열을 선언하는 형식은 다음과 같다.
a[0] | a[1] | a[2] | a[3] | a[4] |
위의 int a[5]: 와 표는 이어지는 것이다.
배열의 초기화
편집배열을 선언하면서 각 배열 요소의 값을 초기화하기 위해서는 배열의 자료형에 맞는 값을 할당하여야 한다.
일반적으로 배열을 선언하고 초기화하는 방법
편집int a[5]={10,20,30,40,50};
10 | 20 | 30 | 40 | 50 |
표의 칸들은 a[0]~a[4] 를 뜻한다.
배열의 크기보다 요소의 초기화 값이 적게 지정된 경우
편집나머지는 '0' 으로 초기화된다.
intb[5]={3,5,7};
3 | 5 | 7 | 0 | 0 |
표의 칸들은 b[0]~b[4]를 뜻한다..
배열의 크기를 지정하지 않은 경우
편집배열의 크기를 지정하지 않았을 때에는 컴파일러가 초기화 값을 가지고 배열의 크기를 지정한다.
int d[]={1,2,3,4,5};
1 | 2 | 3 | 4 | 5 |
표의 칸들은 d[0]~d[4]를 뜻한다.
이같이 배열들을 선언하거나 초기화 하는 방법들을 알아보았다.
2차원 배열
편집2차원 배열은 1차원 배열이 여러 개 필요할 때 사용한다.
배열의 선언
편집2차원 배열을 선언하는 형식은 다음과 같다.
a[0][0] | a[0][1] | a[0][2] |
a[1][0] | a[1][1] | a[1][2] |
표의 가로는 열0~2 표의 세로는 행0~1 이다.
배열의 초기화
편집2차원 배열을 선언하면서 각 배열 요소의 값을 행과 열에 알맞게 초기화하기 위한 방법은 다음과 같다.
배열의 요소를 쉼표를 사용하여 초기화하는 방식
편집int a[2][3]={1,2,3,4,5,6};
1 | 2 | 3 |
4 | 5 | 6 |
표의 칸들의 첫번째 가로줄은 각각 a[0][0]~a[0][2], 두번째 가로줄은 각각 a[1][0]~a[1][2] 이다.
총 배열 요소의 개수보다 초기화 값이 적은 경우
편집int b[2][3]={1,2,3}
1 | 2 | 3 |
0 | 0 | 0 |
표의 칸들의 첫번째 가로줄은 각각 b[0][0]~b[0][1], 두번째 가로줄을 각각 b[1][0]~b[1][2] 이다.
중괄호를 이용한 배열 요소의 초기화
편집int c[2][3]={{1,2,3}, {4,5,6}};
1 | 2 | 3 |
4 | 5 | 6 |
표의 칸들의 첫번째 가로줄은 각각 c[0][0]~c[0][1], 두번째 가로줄을 각각 c[1][0]~c[1][2] 이다.
배열의 열의 개수만을 이용한 초기화
편집int d[2][3]={{1},{2,3}};
1 | 0 | 0 |
2 | 3 | 0 |
표의 칸들의 첫번째 가로줄은 각각 d[0][0]~d[0][1], 두번째 가로줄을 각각 d[1][0]~d[1][2] 이다.