-
(C언어) 9. 다차원 배열C언어 문서화 2016. 3. 27. 01:58반응형
[배열]
1. 다차원 배열?
다차원 배열은 이론적으로는 4차원, 5차원, 6차원 , ... ,N차원까지 가능하지만, 솔직히 3, 4차원까지는 논리적으로 이해할 수 있지만, 5차원부터는 거의 불가능하다고 볼 수 있다. 그래서 흔히 다차원 배열이라고 말 할때는, 1차원, 2차원, 3차원 배열까지를 말한다고 보면 된다.
2. 배열 이해법
C언어를 처음 입문했을 때, 필자는 이렇게 이해했다.:
<1: 변수 : 그냥 변수 1개.//(도형에서의)점_기본단위
<2: 일차원 배열 : 변수 여러개가 모여서 이루는 배열.//(도형에서의)선_점들이 모여서 생김
<3: 이차원 배열 : 일차원 배열 여러개가 모여서 이루는 배열.//(도형에서의)면_선들이 모여서 생김
<4: 삼차원 배열 : 이차원 배열 여러개가 모여서 이루는 배열.//(도형에서의)입체_면들이 모여서 생김
(<5: 사차원 배열 :삼차원 배열 여러개가 모여서 이루는 배열.//시공간_공간에 시간개념이 추가됨.)
3. 초기화_일차원배열
일차원 배열은 다음과 같이 초기화한다.
1int arr[5]={1, 2, 3, 4, 5};cs 4. 초기화_이차원배열
이차원 배열은 다음과 같이 초기화한다.
1int arr[2][3]={{1,2,3},{4,5,6}};cs 또는 이렇게도 초기화 할 수 있다.
1234int arr[2][3]={{1,2,3},{4,5,6}};cs 이런식으로 초기화 한다면, 보기가 매우 편하다. 따라서 이런 예제에 쓰인다.
123456789101112131415161718192021222324252627#include <stdio.h>int main(){int arr[10][10]={{ 0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },{ 0, 1, 0, 0, 0, 0, 0, 0, 0, 0 },{ 0, 1, 0, 0, 0, 0, 0, 1, 0, 0 },{ 0, 1, 1, 1, 1, 0, 0, 1, 0, 0 },{ 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 },{ 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 },{ 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 },{ 0, 1, 0, 0, 1, 0, 0, 1, 0, 0 },};int i, j;for (i = 0; i < 10; ++i){for (j = 0; j < 10; ++j){if (arr[i][j] == 0)printf(" ");elseprintf("*");}printf("\n");}}cs 그렇다. 단순 노가다 프로그램을 짤 때 많이 사용한다.
5. 초기화_삼차원배열
삼차원 배열은 이렇게 초기화한다.
1int arr[2][3][2] = { {{1, 2},{3, 4},{5, 6}},{{7, 8},{9, 10},{11, 12}} };cs 이렇게도 초기화 할 수 있다.
12345678int arr[2][3][2] = { //(1){//(2){1, 2},{3, 4},{5, 6}//(3)},//(2){//(2){7, 8},{9, 10},{11, 12}//(3)}//(2)};//(1)cs 삼차원 배열부터는 초기화식을 한줄로 쓰는 것보다 여러줄에 나눠서 쓰는 것이 한눈에 보기 편하기 때문에 대부분 두번째 방법으로 쓴다.
>>일차원, 이차원 배열에 대해서는 앞의 포스트에서 설명을 해놓았다.
반응형'C언어 문서화' 카테고리의 다른 글
(C언어) 11. 문자열(심화) (0) 2016.04.06 (C언어) 10. 포인터_1 (0) 2016.03.28 (C언어) 8. 정렬 방식 (0) 2016.03.25 (C언어) 7. 함수 (0) 2016.03.25 (C언어) 6. 이진탐색 (0) 2016.03.25