언어/C

[코딩자율학습] 14일차 다차원 배열

홍시_코딩기록 2024. 3. 21. 23:01

 

다차원 배열이란?

 

1차원 배열

int i;
int arr[5];

 

 

다차원 배열

  • 1차원 배열에 배열을 하나 이상 추가한 2차원, 또는 그 이상의 배열을 의미

 

(이건 2차원 배열

int arr2[2][5]

//형식 자료형 배열명[세로크기][가로크기];
  • 2차원 배열은 크기를 뒤부터 읽어서 arr2[2][5]는 5개의 연속된 메모리 공간을 가진 1차원 배열이 2개 있다는 뜻
  • 이 배열의 총 요소는 5 * 2 = 10개

 

 

(이건 3차원 배열)

int arr4[3][3][3];

// 총요소 3 * 3 * 3 = 27개
  • 실무에서는 2,3차원배열까지 사용하고 그 이상은 잘 사용하지 않음.

 

다차원 배열 다루기

  1. 다차원 배열 초기화하기
//1차원 배열 초기화
int arr[5] = {1, 2, 3, 4, 5};

//2차원 배열 초기화
int arr2[2][5] = {
	{1, 2, 3, 4, 5}, 
	{1, 2, 3, 4, 5}
};

//3차원 배열 초기화
int arr3[3][3][3] = { 
	{ 
		**{}, 
		{}, 
		{}** 
	}, 
	{ 
		**{}, 
		{}, 
		{}** 
	}, 
	{ 
		**{}, 
		{}, 
		{}** 
	} 
}

// 크기를 명시하지 않고 다차원 배열 초기화 , 둘이 동일함
int arr[][2] = {1, 2, 3, 4, 5, 6};
int arr[][2] = {{1, 2}, {3, 4}, {5, 6}};

 

 

2. 다차원 배열의 요소에 접근하기

 

 

 

 

다차원 배열 사용하기

#include <stdio.h>

int main(void) {
	int arr3[4][2] = {
		{1,2},
		{3,4},
		{5,6},
		{7,8}
	};
	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 2; j++) {
			printf("2차원 배열 [%d] [%d]의 값: %d\\n", i, j, arr3[i][j]);
		}
	}
	return 0;
}

//출력
2차원 배열 [0] [0]의 값: 1
2차원 배열 [0] [1]의 값: 2
2차원 배열 [1] [0]의 값: 3
2차원 배열 [1] [1]의 값: 4
2차원 배열 [2] [0]의 값: 5
2차원 배열 [2] [1]의 값: 6
2차원 배열 [3] [0]의 값: 7
2차원 배열 [3] [1]의 값: 8
  • 바깥쪽 for문은 세로 크기만큼, 안쪽 for문은 가로 크기만큼 반복
	arr3[3][0] = 100;
	arr3[3][1] = 100;
	for (int i = 0; i < 4; i++) {
		for (int j = 0; j < 2; j++) {
			printf("2차원 배열 [%d] [%d]의 값: %d\\n", i, j, arr3[i][j]);
		}
	}
	return 0;
	
	//출력
2차원 배열 [0] [0]의 값: 1
2차원 배열 [0] [1]의 값: 2
2차원 배열 [1] [0]의 값: 3
2차원 배열 [1] [1]의 값: 4
2차원 배열 [2] [0]의 값: 5
2차원 배열 [2] [1]의 값: 6
2차원 배열 [3] [0]의 값: 100
2차원 배열 [3] [1]의 값: 100
  • 2차원 배열에 인덱스로 접근해 값을 바꿀 수 있음.