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

chapter 14) 여러 개의 1차원 배열을 2차원 배열로 사용

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

int main(void){
    int ary1[4] = {1,2,3,4};
    int ary2[4] = {11,12,13,14};
    int ary3[4] = {21,22,23,24};
    int *pary[3] = {ary1,ary2,ary3};
    int i,j;

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

    return 0;
}

 

### 배열과 포인터 배열 초기화

- `int ary1[4]`, `int ary2[4]`, `int ary3[4]`를 선언하고 각각 `{1,2,3,4}`, `{11,12,13,14}`, `{21,22,23,24}`로 초기화합니다. 이 배열들은 각각 4개의 정수를 저장합니다.
- `int *pary[3] = {ary1, ary2, ary3};`는 정수 포인터의 배열을 선언하고, 초기화합니다. 이 배열은 `ary1`, `ary2`, `ary3` 배열의 주소를 저장합니다. 따라서 `pary`는 `ary1`, `ary2`, `ary3`를 가리키는 포인터의 배열이 되며, 각 포인터는 해당 배열의 첫 번째 요소를 가리킵니다.

### 요소 출력

- 2중 for 루프를 사용하여 `pary` 배열에 저장된 포인터를 순회합니다. 외부 루프(`i`)는 포인터 배열의 각 요소(즉, 각 배열을 가리키는 포인터)를 순회하고, 내부 루프(`j`)는 각 배열의 요소를 순회합니다.
- `printf("%5d", pary[i][j]);`를 사용하여 각 배열의 요소를 출력합니다. 이때 `%5d` 형식 지정자는 각 정수를 최소 너비 5칸에 오른쪽 정렬하여 출력하도록 합니다. 이로 인해 출력이 깔끔하게 정렬됩니다.
- 각 내부 루프의 반복이 끝날 때마다 `printf("\n");`을 사용하여 새 줄로 넘어갑니다. 이렇게 하여 각 배열의 요소들이 각각 새로운 줄에 출력됩니다.

### 프로그램 종료

- `return 0;`을 사용하여 프로그램이 성공적으로 실행되었음을 나타내며 프로그램을 종료합니다.

728x90
반응형
LIST