본문 바로가기
프로그래밍/C

[C언어] 배열 / 2차원 배열

by B T Y 2017. 10. 14.
반응형

배열 / 2차원 배열에 대해서 정리한다.



배열


자료형 배열이름[크기] = {값, 값, 값};


  - 같은 자료형의 변수를 일렬로 늘어놓은 형태

  - 반복문을 이용해서 연속적이고 반복되는 값을 쉽게 처리할 수 있다.

  - 배열내의 각 요소에 접근할때는 '배열명[index]' 형식을 이용해서 접근이 가능하다.

    ( 배열 index의 시작은 0부터 시작한다 )


  - 배열안에 있는 요소의 갯수는 배열의 선언된 크기보다 작을수는 있지만 클수는 없다.

    ( 만약 배열안에 있는 요소의 갯수가 배열에 선언된 크기보다 작다면 나머지 요소에는 자동적으로 0으로 값이 채워진다 )


  - 배열의 모든 요소를 0으로 초기할때는 '자료형 배열이름 = { 0, }' 형식으로 사용해주면 된다.

    ( 위 형식을 사용하면 0을 배열의 크기만큼 각 요소에 모두 나열하지 않아도 된다 )


  - 배열 요소에 값을 할당할때는 '배열[인덱스]' = 값 형식을 사용한다.


  - 배열의 크기를 구할때는 sizeof() 함수를 이용해서 sizeof(배열)을 이용하고

    배열에 들어있는 요소의 크기를 구할때 sizeof(배열) / sizeof(자료형)을 이용하면 가능하다.

    ( 요소의 크기를 구하는 부분과 반복문을 이용해서 배열 안에 있는 요소를 모두 출력 할 수 있다 )


  - 배열은 첫 번째 요소의 주소값만 담고 있다.

    ( 즉, 배열은 주소값이므로 포인터에 넣을 수 있다 )


     * 배열과 포인터의 차이는 sizeof()를 이용해서 비교해보면 배열은 자료형 * 요소의 갯수만큼이 크기로 출력되고 

       포인터는 포인터의 크기만 출력된다.
















2차원 배열


  - 평면 구조( 가로, 세로 구조 )

  - '자료형 배열이름[세로크기][가로크기]' 형식으로 사용한다.

  - 2차원 배열 선언시에 값을 할당할때는 아래와 같은 형식으로 선언해준다.


    자료형 배열이름[세로크기][가로크기] = {

        {가로 요소},

        {가로 요소},

        {가로 요소},

        ...

    };




  - 2차원 배열의 요소를 0으로 초기화 할때도 1차원 배열과 같은 형식으로 사용한다.

     * 자료형 배열이름[세로크기][가로크기] = { 0, }


  - 2차원 배열의 인덱스에 접근해서 값을 할당하는 경우에도 1차원 배열과 방법이 같다.

     * 배열이름[세로크기][가로크기] = 값;


  - 배열 범위에 벗어난 인덱스에 접근하면 다른 메모리에 접근하게 된다.

      ( 이 경우 컴파일 에러는 나지 않기 때문에 주의해야한다 )


     * 2차원 배열도 일렬로 늘어져있기 때문에 가로 인덱스가 범위를 벗어나게 되면 그다음 인덱스로 접근하게 된다.





  - 2차원 배열 가로(row, 행)의 요소 개수

    sizeof(배열이름[0]) / sizeof(자료형)


  - 2차원 배열 세로(column, 열)의 요소 개수

    sizeof(배열이름) / sizeof(배열이름[0])


    * 2차원 배열의 가로와 세로의 요소 개수를 이용해서 2차원 배열의 모든 요소를 다 출력 할 수 있다.


  - 2차원 배열을 포인터에 담으려면 '자료형(*포인터이름)[가로크기]' 형식을 이용한다.












  - 3차원 배열'자료형 배열이름[높이의 크기][세로크기][가로크기]' 형식으로 사용한다.

    * 포인터에 담으려면 '자료형(*포인터이름)[세로크기][가로크기]' 형식을 사용한다.





반응형

댓글