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

chapter 14) 2차원 배열의 값을 출력하는 함수

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

void print_ary(int (*)[4]);

int main(void){
    int ary[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};
    print_ary(ary);
    return 0;
}

void print_ary(int (*pa)[4]){
    int i, j;

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

### 코드 설명

이 프로그램은 2차원 배열을 매개변수로 받는 함수를 통해 배열의 내용을 출력하는 예제입니다. 이를 통해 C언어에서 2차원 배열과 포인터 배열을 함수에 전달하는 방법을 보여줍니다.

### 배열과 함수 선언

- `int ary[3][4] = {{1,2,3,4},{5,6,7,8},{9,10,11,12}};`는 3행 4열의 2차원 배열 `ary`를 선언하고 초기화합니다. 이 배열은 정수 1부터 12까지의 값을 순서대로 저장합니다.
- `void print_ary(int (*)[4]);`는 2차원 배열의 포인터를 매개변수로 받는 `print_ary` 함수를 선언합니다. 이 함수는 배열의 각 요소를 출력하는 역할을 합니다.

### `main` 함수

- `print_ary(ary);`는 `ary` 배열을 `print_ary` 함수에 인자로 전달합니다. 배열 이름 `ary`는 배열의 첫 번째 요소(즉, 첫 번째 행의 시작 주소)를 가리키는 포인터로 취급됩니다.

### `print_ary` 함수

- `void print_ary(int (*pa)[4])`는 2차원 배열의 포인터를 매개변수 `pa`로 받습니다. `pa`는 4개의 정수를 저장할 수 있는 배열의 포인터입니다.
- 2중 for 루프를 사용하여 매개변수로 받은 배열의 모든 요소를 순회하고, `printf("%5d", pa[i][j]);`를 통해 배열의 각 요소를 출력합니다. 여기서 `%5d`는 출력할 정수를 최소 너비 5칸에 오른쪽 정렬하여 출력하도록 지시합니다.
- 내부 루프가 종료될 때마다 `printf("\n");`를 사용하여 새 줄로 넘어갑니다. 이렇게 하여 배열의 각 행을 새 줄에 출력합니다.

### 프로그램 종료

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

728x90
반응형
LIST