본문 바로가기
IT/c언어

C 언어에서 배열을 함수의 인수로 전달하는 방법

by 뉴코딩맨 2023. 7. 13.
C 언어에서 배열을 함수에 전달하는 방법은 배열의 이름을 함수의 매개변수로 사용하는 것입니다. 배열의 이름은 배열의 첫 번째 요소의 주소를 나타내므로, 이를 활용하여 함수에 배열을 전달할 수 있습니다.
 
 

배열 전달의 예제

아래의 예제를 통해 배열을 함수에 전달하는 방법을 이해해보겠습니다.
 
#include <stdio.h>

void printArray(int arr[], int size) {
    for (int i = 0; i < size; i++) {
        printf("%d ", arr[i]);
    }
    printf("\n");
}

int main() {
    int numbers[] = {1, 2, 3, 4, 5};
    int size = sizeof(numbers) / sizeof(numbers[0]);

    printArray(numbers, size);

    return 0;
}
 
위의 예제에서는 printArray라는 함수를 선언하고 정의합니다. 이 함수는 arr이라는 정수형 배열과 size라는 배열의 크기를 인수로 받아 배열의 요소를 출력합니다. main 함수에서는 numbers라는 배열을 선언하고 초기값을 할당한 후, printArray 함수에 numbers 배열과 배열의 크기를 전달합니다.
 
 

2차원 배열을 함수에 전달하는 방법

2차원 배열을 함수에 전달하는 방법은 약간의 다른 문법을 사용합니다. 2차원 배열은 배열의 각 요소가 배열로 구성되어 있으므로, 함수에 전달될 때에는 포인터로 전달됩니다.
 
#include <stdio.h>

void printMatrix(int matrix[][3], int rows, int cols) {
    for (int i = 0; i < rows; i++) {
        for (int j = 0; j < cols; j++) {
            printf("%d ", matrix[i][j]);
        }
        printf("\n");
    }
}

int main() {
    int matrix[][3] = {{1, 2, 3}, {4, 5, 6}};
    int rows = sizeof(matrix) / sizeof(matrix[0]);
    int cols = sizeof(matrix[0]) / sizeof(matrix[0][0]);

    printMatrix(matrix, rows, cols);

    return 0;
}
 
위의 예제에서는 printMatrix라는 함수를 선언하고 정의합니다. 이 함수는 matrix라는 2차원 배열과 배열의 행 수(rows)와 열 수(cols)를 인수로 받아 배열의 요소를 출력합니다. main 함수에서는 matrix라는 2차원 배열을 선언하고 초기값을 할당한 후, printMatrix 함수에 matrix 배열과 행 수와 열 수를 전달합니다.
 

결론

C 언어에서 배열을 함수의 인수로 전달하는 방법은 배열의 이름을 함수의 매개변수로 사용하는 것입니다. 배열의 이름은 배열의 첫 번째 요소의 주소를 나타내므로, 이를 활용하여 함수에 배열을 전달할 수 있습니다. 2차원 배열의 경우에는 포인터로 전달되며, 배열의 행 수와 열 수도 함께 전달해야 합니다. 이러한 방법을 활용하여 배열을 함수에 전달하면 함수 내에서 배열을 활용할 수 있으며, 배열의 요소를 조작하거나 출력하는 등의 작업을 수행할 수 있습니다.
 

댓글