' P '

whatever I will forget

C++ 関数に配列を渡したい場合

関数に配列を渡したい場合は、配列変数と共に、配列サイズも渡してあげること!!! (関数はその配列変数が何この要素を持っているのか知らないため)
また、print系の関数でarrayの値が変わるはずがない場合には、ちゃんと"const"をarray変数の前に定義すること。
不意な箇所のミスでarrayの値が変わることを防止してくれる。
あと、プロトタイプ関数宣言のとき、ちゃんとarray[] と定義すること!

void print_array_info (const int array[], size_t size);
void set_array_value (int array[], size_t size, int);

int main (){
    int array[] {1,2,3,4,5};
    print_array_info (array, 5);
    set_array_value (array, 5, 100)
    print_array_info (array, 5);
    return 0;
}

void print_array_info (int array, size_t size){
    for (size_t i {0}; i < size; i++) {
        cout << array[i] << endl;
}

void set_array_value (int array, size_t size, int value){
    for (size_t i{o}; i<size; i++ ) {
        array[i] = value //every array of value becomes 100
}

ただ面白いのは、array変数を関数に渡すときは、array[0]のアドレスが関数に渡される
array[0]のアドレスがコピーされ関数に渡され、値がセットされれば、たとえ値をセットする関数にreturnがなくvoidであっても、
関数の処理終了後は、セットされた値になっているということ!
上記例だとset_array_value関数の処理後のarrayと値は、100,100,100,100,100になっている!