【C言語】関数に配列のポインタを渡して処理する方法を解説

この記事では、C言語において配列のポインタを関数に渡す方法について解説します。

目次から探す

配列のポインタを関数に渡す方法

C言語では、配列のポインタを関数に渡すことができます。

これにより、関数内で配列の要素を変更したり、配列を操作したりすることができます。

配列のポインタを引数として受け取る関数の宣言

配列のポインタを引数として受け取る関数を宣言する際には、以下のように関数の引数にポインタ型を指定します。

void 関数名(データ型* 配列名)

配列のポインタを使った処理の例

以下に、配列のポインタを使った処理の例を示します。

#include <stdio.h>
// 配列の要素を2倍にする関数
void doubleArray(int* arr, int size) {
    for (int i = 0; i < size; i++) {
        arr[i] *= 2;
    }
}
int main() {
    int numbers[] = {1, 2, 3, 4, 5};
    int size = sizeof(numbers) / sizeof(numbers[0]);
    printf("変更前の配列: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");
    doubleArray(numbers, size);
    printf("変更後の配列: ");
    for (int i = 0; i < size; i++) {
        printf("%d ", numbers[i]);
    }
    printf("\n");
    return 0;
}

上記のコードでは、doubleArrayという関数を定義しています。

この関数は、配列の要素を2倍にする処理を行います。

main関数内で、numbersという配列を宣言し、その後にdoubleArray関数を呼び出しています。

実行結果は以下のようになります。

変更前の配列: 1 2 3 4 5
変更後の配列: 2 4 6 8 10

配列のポインタを関数に渡すことで、関数内で配列の要素を変更することができました。

配列のポインタを関数に渡す際には、配列の要素数も引数として渡す必要があります。

これは、関数内で配列の要素数を取得する方法がないためです。

目次から探す