【C言語】引数で配列を扱えるようにするにはどうしたらいい?

この記事では、C言語において配列を関数の引数として渡す方法と注意点について解説します。

目次から探す

配列を引数として渡す方法

配列を引数として渡す基本的な方法

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 arr[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr) / sizeof(arr[0]);
    
    printArray(arr, size);
    
    return 0;
}

上記の例では、printArrayという関数を定義し、arrsizeという2つの引数を受け取っています。

arrは配列の先頭要素へのポインタであり、sizeは配列の要素数です。

printArray関数内では、arrをループして配列の要素を表示しています。

配列の要素数を引数として渡す方法

配列の要素数を引数として渡す方法もあります。

これは、配列の要素数を明示的に関数に渡すことで、関数内で配列の要素数を取得する必要がなくなります。

以下に例を示します。

#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 arr[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr) / sizeof(arr[0]);
    
    printArray(arr, size);
    
    return 0;
}

上記の例では、printArray関数の引数の配列宣言部分で、int arr[]と書くことで配列の要素数を明示的に指定しています。

これにより、関数内で配列の要素数を取得する必要がなくなります。

配列を引数として渡す際の注意点

配列の要素数の取得方法

C言語では、配列の要素数を取得する方法はいくつかありますが、一般的な方法はありません。

配列の要素数を関数に渡す場合、明示的に要素数を指定する必要があります。

配列の要素数を固定する方法

C言語では、配列の要素数を固定する方法はありません。

配列の要素数を固定するためには、配列の宣言時に要素数を指定する必要があります。

要素数を固定する場合、配列の要素数を変更することはできません。

目次から探す