C++で配列を引数として渡す方法は何ですか?

C++で配列を関数のパラメータとして渡す方法はいくつかあります:

  1. ポインタを渡す:関数に配列の先頭アドレスをポインタとして渡すことができます。関数内でポインタを使って配列の要素にアクセスします。例のコードは以下の通りです:
void foo(int* arr, int size) {
    for (int i = 0; i < size; i++) {
        cout << arr[i] << " ";
    }
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    int size = sizeof(arr) / sizeof(arr[0]);
    foo(arr, size);
    return 0;
}
  1. 参照の伝達:関数に配列を参照として渡すことができます。関数内で配列の要素にアクセスするためには、引き続き配列名を使用できます。以下に示すコード例をご覧ください:
void foo(int (&arr)[5]) {
    for (int i = 0; i < 5; i++) {
        cout << arr[i] << " ";
    }
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    foo(arr);
    return 0;
}
  1. テンプレートパラメータを使用すると、異なる長さの配列に対応できるようになります。以下に示すコード例を参考にしてください。
template<typename T, size_t size>
void foo(T (&arr)[size]) {
    for (int i = 0; i < size; i++) {
        cout << arr[i] << " ";
    }
}

int main() {
    int arr1[] = {1, 2, 3, 4, 5};
    foo(arr1);

    double arr2[] = {1.1, 2.2, 3.3, 4.4, 5.5};
    foo(arr2);
    return 0;
}

関数のパラメーターとして配列を使用する場合、渡されるのは配列のコピーであり、配列内の要素を変更しても元の配列に影響を与えません。関数内で元の配列を変更したい場合は、ポインターか参照をパラメーターとして使用することができます。

bannerAds