16. 다차원 배열

I. 다차원 배열

  • 2차원 배열의 선언

    • 2차원 배열의 선언과 의미
    • 1차원 배열

      •  16.jpg
    • 2차원 배열

      • 17.jpg 
    • 가로가 열 세로가 행을 가리킨다.

      • 자료형 배열이름[행][열]; 이런식으로 선언하면 된다.
  • 실제 메모리상의 그림

    •  18(1).jpg
    • 위와 같은 그림 처럼 메모리에 잡힌다.

 

  • 2차원 배열! 선언과 동시에 초기화 (여기서 부터는 그림 귀찮아서 안 그립니다.)

    • 초기화 case 1: 행 단위로 모든 요소들을 초기화 하는 경우
  1.  int main()
    {
     int somang[3][3]=
     {
      {1,2,3},{4,5,6},{7,8,9}
     };
    }
  • 위와 같이 배열의 개수 만큼 써서 초기화를 해주면 된다. {} 당 한 행으로 보면 된다.

 

  • 초기화 case 2: 행 단위로 일부 요소들만 초기화하는 경우
  1.  int main()
    {
     int somang[3][3]=
     {
      {1},{4,5},{7,8,9}
     };
    }
  • 위와 같이 초기화 할경우 첫째행에 들어가는 수는 1,0,0 이 들어간다. 부족한 부분은 0으로 채워진다.

 

  •  초기화 case 3: 1차원 배열 초기화 형태를 취하는 경우

int somang[3][3] = {1,2,3,4,5,6,7};

  • 위와 같이 하면 1~7까지 들어가고 나머지 0이 들어간다.

 

  • 배열의 크기를 알려주지 않고 초기화 하기

int arr[][]={1,2,3,4,5,6,7,8}

 

  • 위와 같이 하면 2*4 행렬 또는 4*2 행렬 1*8 8*1행렬등 어떤식인지 컴터가 몰라 오류가 난다. 다음과 같이 둘중 하나는 알려줘야 한다.

int arr[][4]={1,2,3,4,5,6,7,8};

 

II. 3차원 그 이상의 배열!

여기서는 별로 설명을 안하겠다.

  • 3차원 이상의 배열은 거의 사용 안한다.
  • 2차원배열을 행렬로 생각하고 3차원 행렬은 큐브 모양으로 되어 있다고 생각하면 쉬울 것이다.

 

문제

16 -1

문제 1

3*9 int형 2차원배열을 선언하자 그리고 그 안에 구구단의 결과를 4단까지 저장하자 제대로 저장되었음을 확인하기 위해서 출력해 보자

 

문제2

A는 2*4 int형 배열이다. 1~8까지로 초기화 시킨 다음 4*2형태로 바꾸고 A에 있는 값으로 초기화 시키자.

이 글은 스프링노트에서 작성되었습니다.

'2. C/C++ > 01. C' 카테고리의 다른 글

18. 다차원 배열 그리고 포인터  (0) 2008.12.07
17. 포인터의 포인터  (0) 2008.12.07
14. 포인터와 함수에 대한 이해  (0) 2008.12.07
13. 포인터와 배열! 함께 이해하기  (0) 2008.12.07
12. 포인터의 이해  (0) 2008.12.07
Posted by kid1412
,