C-프로그래밍 3D Array, 3차원 배열 배우기!
이전에 배웠던 1D array와 2D Array를 복습해봅시다.
1D array(1차원 배열)은 row(행)이 하나인 배열이라고 생각하면 된다고 했습니다.
Row(행)이 하나이기 때문에 단순히 int Array[10] = {0}; 이렇게 초기화와 동시에 선언해줄 수 있다고 했습니다.
반면에 2D array(2차원 배열)은 row(행)가 2개인 배열이라고 생각하면 된다고 했는데요.
Row(행)이 두 개이기 때문에 int Array[2][3] = {0}; 이런식으로 선언과 초기화가 동시에 가능할 것입니다.
ex) [ 1D - Array]
int Array[10] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
for(i=0; i<10; i++){
printf(" %4d", Array[i]);
}
result : 1 2 3 4 5 6 7 8 9 10
ex) [2D - Array]
int Array[2][3]={{1,2,3},{4,5,6}};
for(i=0; i<2; i++){
for(j=0; j<3; j++){
printf("%4d", Array[i][j]);
}
printf("\n");
}
result : 1 2 3
4 5 6
이런 식으로 출력됨을 알 수 있습니다.
이제 부터 조금 어렵습니다! 드디어 3D-Array 3차원 배열인데요,
사실 3차원 배열부터는 사용할 일이 거의 없습니다.
3차원 배열을 생각할 때 쉽게 생각하려면
1차원 배열이 선이었다면, 2차원 배열은 면이고, 3차원 배열은 부피(?), 라고 생각하면 되겠습니다.
1차원 배열에서 row(행)이 여러개 추가된게 2차원 배열이었으니,
3차원 배열은 1차원 배열에서 하나 더 추가 되어야 겠지요?
ex) 1D-Array int array[10];
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
ex) 2D-Array int array[2][3];
{{1, 2, 3}, {4, 5, 6}};
ex) 3D-Array int array[2][2][3];
{ { {1, 2, 3}, {4, 5, 6} }, { {1, 2, 3}, {4, 5, 6} } };
얼핏 보기에는 조금 어렵죠? 1차원 배열이 위 같이 선언되었다면, 요소가 10개인 1차원 배열이 하나 선언되었다고 생각하면 됩니다.
2차원 배열이 위 같이 선언되었다면 3개 짜리 요소를 가진 행이 두 개 있다. 라고 생각하면 쉬울 듯 합니다.
3차원 배열은 뒤에서부터 생각하면 쉬울 것 같은데요, 3개짜리 요소를 가진 행 두개가 두 개 있다. 라고 생각하면 쉽죠?
[2][2][3] 이니까, 3개 짜리 요소를 가진 행 2개가 2번 있다!
{{1, 2, 3}, {4, 5, 6}}, {{1, 2, 3}, {4, 5, 6}}
이렇게 되는 겁니다!
3차원 배열은 사실 쓰일 일이 많이 없다는게 함정입니다.(Karnaugh map(K-Map)에서도 6-Variables 부터는 잘 안 쓰이는 것 처럼 말입니다.)
고생하셨습니다.
나중에 더욱 더 품격있는 강의로 돌아오겠습니다.
Happy Studies!
'Study' 카테고리의 다른 글
The Secrets of Universe, 우주의 비밀에 대해서 공부 (0) | 2018.07.23 |
---|---|
[영어/한글번역]Exclusive Owen Ovadoz Interview (0) | 2018.07.11 |
C-프로그래밍, getchar();, putchar(); 배우기! (0) | 2018.05.11 |
C 프로그래밍 헤더 종류 (0) | 2018.05.10 |
C-프로그래밍 주석 comment 기초 배우기 (0) | 2018.05.10 |