본문 바로가기

C언어/C언어 문법

[C언어] 2차원배열, 다차원배열

728x90
반응형

다차원배열

 

1차원배열은 여러 개의 변수를 하나의 평면구조로 배열해 놓은 것을 의미한다고 했었다.

 

다차원배열은 이 1차원배열을 여러 개의 계층으로 나누어 놓은 것을 생각하면 된다.

 

 

 

 

 

 

 

 

 

 

다차원배열 선언

 

다차원배열의 선언은 1차원배열과 동일하게 자료형, 배열 이름, 배열의 길이를 필요로 한다.

 

배열의 길이를 작성할 때 원하는 차원의 개수 만큼 대괄호를 사용하여 명시해 주면 된다.

 

예를 들어 arr이라는 이름의 가로의 길이가 5이고 세로의 길이가 2인 정수형 2차원배열의 선언은 다음과 같이 할 수 있다.

 

int arr[2][5];

 

 

 

위 코드와 같이 선언하게 되면 2행 5열의 int형 배열이 선언된 것이다.

 

따라서 총 10개의 int형 변수를 저장할 수 있게 된다.

 

3차원배열은 2차원 배열과 마찬가지로 배열 이름 뒤에 대괄호를 3개 사용하여 길이를 선언해 주면 된다.

 

int arr[2][5][6];

 

이렇게 선언하게 되면 총 60개의 정수형 변수를 선언한 것과 동일하다.

 

 

 

 

 

 

 

 

 

 

 

다차원배열 초기화

 

다차원배열을 초기화하는 방법은 1차원배열과 유사하다.

 

중괄호를 사용하여 초기화 할 수 있는데 중괄호를 선언하고 싶은 차원의 개수만큼 중첩하여 써주면 된다.

 

int arr[3][3] = {{0, 1, 2}, {3, 4, 5}, {6, 7, 8}};

 

 

 

 

DEV C++ 컴파일러에서는 아래 코드처럼 초기화해도 문제가 없었다.

 

int arr[3][3] = {0, 1, 2, 3, 4, 5, 6, 7, 8};

 

 

 

 

 

 

 

 

 

 

 

 

다차원배열 접근

 

다차원배열에 접근하는 방법도 일차원배열과 비슷하다.

 

int arr[3][3] = {{0, 1, 2}, {3, 4, 5}, {6, 7, 8}};

 

아까 선언한 배열을 예시로 들어보자면

 

arr[0][0]에는 0, arr[0][1]에는 1 arr[0][2]에는 2 ,

arr[1][0]에는 3 arr[1][1]에는 4 arr[1][2]에는 5 ,

arr[2][0]에는 6 arr[2][1]에는 7 arr[2][2]에는 8

 

이 저장된 것이다.

 

이렇게 9개의 변수가 선언된 것처럼 활용할 수 있다.

 

 

 

 

예시로 아래 코드는 반복문을 활용하여 만들어진 모든 배열을 출력하는 코드이다.

 

#include <stdio.h>

int main()
{
	int arr[3][3] = {0, 1, 2, 3, 4, 5, 6, 7, 8};
	int i = 0;
	int j = 0;
	for (;i<3;i++)
		for (j=0;j<3;j++)
			printf("%d\n", arr[i][j]);
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

728x90
반응형