본문 바로가기
개발/C

[C언어] 2차원, 3차원 배열이란? 2차원, 3차원 배열 사용법, 배열에 저장하고 출력하기

by jinhyuk._.c 2022. 11. 15.

 

2차원, 3차원 배열이란?

지난 포스팅에서 배열이란 연관이 되어있는 데이터들을 하나의 변수에 저장을 하는것이라는 알아보았습니다.

즉, 배열은 연관이 되어있는 데이터들을 하나의 변수에 담아서 관리하기 위해 사용이 되는 변수 것 또한 알아보았습니다.

 

<배열에대한 참고자료>

[C언어] 배열이란? 배열 사용법, 배열에 저장하고 출력하기 (1차원 배열)

 

[C언어] 배열이란? 배열 사용법, 배열에 저장하고 출력하기 (1차원 배열)

배열이란? 배열이란 연관이 되어있는 데이터들을 하나의 변수에 저장을 하는것입니다. 즉, 배열은 연관이 되어있는 데이터들을 하나의 변수에 담아서 관리하기 위해 사용이 되는 변수 입니다.

daily.from-my-daily.com

 

그러면 배열안에 배열도 가능할 까요??

"네. 가능합니다."

 

배열에 자효형의 형태를 담는것이기 때문에 배열안에 배열형태의 자료형을 담을수가 있습니다.

 

 

2차원 배열 - 배열안에 배열을 넣은것

3차원 배열 - 배열안에 배열을 넣고 그 배열안에 배열을 넣은것

 

 

2차원 배열의 그림예시

배열안에 배열이 들어가있습니다.

 

 

 

이해하기 쉽게보면 대략 이런 그림으로 그려질수 있습니다.

 

a[행][열] 로 생각하시면 편할듯합니다.

 

 

 

 

3차원 배열의 그림예시

배열안에 배열안에 배열이 들어가있습니다.

 

 

 

이해하기 쉽게보면 대략 이런 그림으로 그려질수 있습니다.

 

 

a[깊이][행][열] 로 생각을 할수 있을것 같습니다.

 

이해하시기 쉽고 많이 사용되는 예시로 3차원 까지 보여드린거고 그 이상의 배열안에 배열안에 배열안에 배열... 이상도 가능합니다.

 

 

그러면 배열에 왜 배열을 넣을까요?

 

지난 포스팅에서 배열에 여러 데이터들를 담으면 그만큼 여려가지로 사용이 가능하다는 것을 알아보았습니다.

그러면 배열안에 배열을 넣으면 더 많은 데이터들을 담을 수 있고 데이터를 더욱 편리하게 관리할 수 있습니다.

그리고 하나더 말씀드리면 x축, y축이 그려진 그래프나 x축, y축, z축이 그려진 그래프를 표현할 수도 있습니다.

 

배열안에 배열의 장점

1. 배열하나만 사용하는것 보다 보다 많은 데이터들을 사용하고 관리할 수 있습니다.

2. x축, y축이 그려진 그래프나 x축, y축, z축이 그려진 그래프를 표현할 수도 있습니다.

 

 

 

2차원, 3차원 사용법

 

2차원 배열 코드

세로(행)가 3, 가로(열)이 4 인 정수형 배열 선언 및 초기화 하고 출력을 해보았습니다.

#include <stdio.h>

int main()
{
    int a[3][4] = {    // 세로 크기 3, 가로 크기 4인 정수형 2차원 배열 선언 및 초기화
        { 1, 2, 3, 4 },
        { 11, 12, 13, 14 },
        { 111, 222, 333, 444 }
    };
 
    printf("%d\n", a[0][0]);   
    printf("%d\n", a[1][1]);    
    printf("%d\n", a[2][2]);    
    printf("%d\n", a[2][3]);  
  

    return 0;
}

 

출력 결과

1행1열 값을 출력하여 1 이 출력되었고

2행2열 값을 출력하여 12 가 출력되었고

3행 3열 값을 출력하여 333이 출력되었고

3행 4열 값을 출력하여 444 가 나와습니다

 

 

 

3차원 배열 코드

3차원 배열 코드를 위의 그림처럼 이해하기 위해서는

"2 깊이 , 3행 깊이, 4열 깊이" 로 선언 및 초기화를 해줬다고 이해하시면 되면
배열을 작성하실때는 혼동이 쉬우니 "2배열 안에 3배열 안에 4배열" 이라고 생각하시면서 작성하시면 이해에 도움이 될듯합니다.

#include <stdio.h>

int main() {
	
    int a[2][3][4] = { 
		//2 깊이 , 3행 깊이, 4열 깊이
		//2배열 안에 3배열 안에 4배열
		{{1,2,3,4}
		,{1,2,3,4}
		,{1,2,3,4}
		},
		{{1,2,3,4}
		,{1,2,3,4}
		,{1,2,3,4}}
	};

	printf("1깊이 1행 1열 = %d\n", a[0][0][0]);
	printf("2깊이 2행 2열 = %d\n", a[1][1][1]);
	printf("2깊이 3행 3열 = %d\n", a[1][2][2]);
	printf("2깊이 3행 4열 = %d\n", a[1][2][3]);
	
	return 0;
}

 

 

출력 결과

1깊이 1행 1열 = 1
2깊이 2행 2열 = 2
2깊이 3행 3열 = 3
2깊이 3행 4열 = 4

 

 

오늘의 포스팅 정리

 

오늘은 2차원, 3차원 배열의 사용법에 대해서 알아보았습니다.

2차원, 3차원 배열의 사용법은 여러가지 방법이 있습니다.

그래프로 사용이 가능하고 3차원 그림을 그릴때 사용하기도 합니다.

오늘 보여드린 2차원, 3차원 배열은 배열에 대한 이해를 돕기위해 알아본것들 있었습니다.

 

다차원의 배열(2차원, 3차원 등등)은 테스리스 프로그램이나 지뢰찾기 프로그램 혹은 미로찾기 프로그램에서도 사용이 가능합니다. 더 나아가 데이터의 효율적인 관리에 사용이 되기도 합니다.

 

나중의 포스팅에서는 지뢰찾기, 미로찾기, 테트리스 프로그램을 만들예정이고 

이 프로그램을 만들기 위해 조금씩 기본적인 개념들을 익혀서 만들어보겠습니다.

 

다음 포스팅에서는 조건함수에 대해 알아보겠습니다.

 

반응형

댓글