본문 바로가기
개념/혼자 공부하는 C언어

chapter 15) 배열 포인터로 3차원 배열의 값 출력

by kiseno 2024. 9. 11.
728x90
반응형
SMALL
#include <stdio.h>

int main(void){
    int ary[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
    int(*pa)[4];
    int i, j;

    pa = ary;
    for (i = 0; i< 3; i++){
        for (j = 0; j< 4; j++){
            printf("%5d", pa[i][j]);
        }
        printf("\n");
    }
}

### 코드 설명

- `int ary[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};`는 3행 4열의 2차원 정수 배열 `ary`를 선언하고 초기화합니다. 이 배열은 총 3개의 행과 각 행에 4개의 열을 포함합니다.
- `int(*pa)[4];`는 각각 4개의 정수를 원소로 갖는 배열을 가리키는 포인터 `pa`를 선언합니다. 즉, `pa`는 4개의 정수를 갖는 배열의 포인터로, 2차원 배열의 행을 가리키는 데 사용됩니다.
- `pa = ary;`는 `pa` 포인터에 `ary` 배열의 첫 번째 행(즉, 첫 번째 배열)의 주소를 할당합니다. 배열 이름은 주소를 나타내므로, 이 할당은 `pa`가 `ary`의 첫 번째 행을 가리키게 합니다.
- 이중 for 루프를 사용하여 배열의 각 요소에 접근하고 이를 출력합니다. 외부 루프 `i`는 행을, 내부 루프 `j`는 열을 나타냅니다.
  - `printf("%5d", pa[i][j]);`를 통해 각 요소를 출력합니다. `%5d`는 출력할 정수를 최소 너비 5칸에 오른쪽 정렬하여 출력하도록 지정합니다.

### 결과

이 코드는 2차원 배열 `ary`에 저장된 정수들을 다음과 같은 형태로 출력합니다:

```
    1    2    3    4
    5    6    7    8
    9   10   11   12
```

각 숫자는 최소 5칸의 너비를 가지고 오른쪽으로 정렬되어 출력됩니다. 이 예제는 2차원 배열을 다루고, 배열에 대한 포인터를 사용하여 배열의 요소에 접근하는 방법을 보여줍니다.

728x90
반응형
LIST