프로그래밍 언어/C

C언어 17강 다차원 배열

happy_life 2020. 11. 5. 14:44

다차원 배열: 배열의 개수가 2개 이상일 때를 다차원 배열이라고 부른다.

 

 

●2차원 배열

 

●선언방법예시

  int 배열명[3][5] = { {1, 2, 3, 4, 5}, {6, 7, 8, 9, 10}, {11, 12, 13, 14, 15}} ;

              ↗  ↖

          행         열 

 

2차원 배열의 배열명 타입을 'int', 배열명을 'data', 배열의 크기를[3행][5열]로 선언하여, 배열 요소의 초기값을 대입하면 메모리 공간에는 다음과 같이 저장된다.

1 2 3 4 5
6 7 8 9 10
11 12 13 14 15

 

●2차원 배열 코드출력예제

#include <stdio.h>


int main() {
	
	int data[3][5] = { {1,2,3,4,5},{6,7,8,9,10},{11,12,13,14,15} };
	int hang, yeol;

	printf("\n●data[3][5]의 2차원 배열 알아보기 code●\n");

	for (hang = 0; hang <= 2; hang++)
	{
		printf("\n[%d]행 출력", hang + 1); //hang + 1 한 이유 : index는 0부터 시작하니까.
		for (yeol = 0; yeol <= 4; yeol++)
		{
			printf(" %3d ",  data[hang][yeol]);
		}
	}

	return 0;

}

  

 

 

#include <stdio.h>

int main()
{
    int numArr[3][4] = { 1, };       // 2차원 배열의 요소를 모두 1으로 초기화

    printf("%d\n", numArr[0][0]);    // 0: 세로 인덱스 0, 가로 인덱스 0인 요소 출력
    printf("%d\n", numArr[1][2]);    // 0: 세로 인덱스 1, 가로 인덱스 2인 요소 출력
    printf("%d\n", numArr[2][0]);    // 0: 세로 인덱스 2, 가로 인덱스 0인 요소 출력
    printf("%d\n", numArr[2][3]);    // 0: 세로 인덱스 2, 가로 인덱스 3인 요소 출력

    return 0;
}

 

●3차원 배열

 

●선언방법예시

 int 배열명[2][3][3] ={ {{1, 2, 3}, {4,5,6}, {7,8,9}}, {{10, 11, 12}, {13, 14, 15}, {16, 17, 18}} } ;

             ↗  

             행       열

 

3차원 배열의 배열명 타입을 'int', 배열명을 'data', 배열의 크기를[2면][3행][3열]로 선언하여, 배열 요소의 초기값을 대입하면 메모리 공간에는 다음과 같이 저장된다. 

1 2 3
4 5 6
7 8 9
10 11 12
13 14 15
16 17 18

●3차원 배열 코드출력예제

#include <stdio.h>


int main() {
	
	int data[2][3][3] = { {{1, 2, 3}, {4,5,6}, {7,8,9}}, {{10, 11, 12}, {13, 14, 15}, {16, 17, 18}} };
	int myeon;
	int hang;
	int yeol;

	printf("\n●data[2][3][3]의 3차원 배열 알아보기 code●\n");

	for (myeon = 0;  myeon <= 1;  myeon++)
	{
		printf("\n===========[%d]면 출력========", myeon + 1); //myeon + 1 한 이유 : index는 0부터 시작하니까.
        
		for (hang = 0; hang <= 2; hang++)
		{
        
			printf("\n[%d]행 출력 ", hang + 1);
			
			for (yeol = 0; yeol <= 2; yeol++)
			{
        
				printf("%3d", data[myeon][hang][yeol]);
                
			}
			

		}
	}
	printf("\n");  //<===의미없는 코드임 

	return 0;

}