포털:고등학교/정보·통신 계열 전문 교과(2015)/프로그래밍/배열

위키배움터

배열[편집]

배열은 동일한 타입의 데이터가 여러 개 저장되어 있는 데이터 저장장소이다.
동일한 자료형을 가진 변수들을 한 번에 정의하고, 배열의 주소에 해당하는 첨자를 이용하여 배열 안의 자료를 구분한다.
예를 들어, 프로그램에서 300명의 이름과 키를 기억하게 만드려면 많은 양의 변수가 필요하다.
하지만 배열을 사용한다면 이 300개를 한번에 선언하여 쉽고 빠르게 해결이 가능하다.

이처럼 프로그램에서는 문제 해결을 위해 데이터를 저장할 수 있는 다량의 변수를 사용한다.
변수 하나에는 하나의 데이터만 저장할 수 있으므로 여러 자료형의 데이터를 저장하고 처리하려면 그만한 양의 변수를 지정하여 사용해야한다. 그때, 배열을 사용하면 이 작업을 보다 효율적으로 끝낼 수 있다

1차원 배열[편집]

하나의 행 또는 하나의 열로만 이루어진 배열을 1차원 배열이라고 한다. 
같은 자료형과 이름으로 여러 개의 기억 장소를 지정할 때 1차원 배열을 사용한다.

배열의 선언[편집]

1차원 배열을 선언하는 형식은 다음과 같다.

int[1] a[2][5];[3]

기억 공간
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차원 배열을 선언하는 형식은 다음과 같다.

int a[2][4][3][5];

기억공간
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] 이다.

  1. 자료형: int, float, char 등과 같이 변수에 기억될 자료의 형을 선언한다.
  2. 배열명: 변수명과 같이 기억 장소에 붙여지는 이름으로 사용자가 지정한다.
  3. 첨자는 0번째부터 정의되며, 대괄호([첨자])가 한 개이면 1차원, 두 개이면 2차원 등으로 분류된다.
  4. 행의 개수
  5. 열의 개수