Как передать массив в функцию на C++?

Пользователь

от guillermo , в категории: C/C++ , 2 года назад

Как передать массив в функцию на C++?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от johnpaul.blick , 2 года назад

@guillermo Вы можете передать массив в функцию на C++ указав: тип имя_переменной[], посмотрите пример ниже:


 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
#include <stdio.h>

void replaceFirstElement(int elements[]) {
    elements[0] = 5;
}

int main() {
    int numbers[3] = {1, 2, 3};

    replaceFirstElement(numbers);

    for (int number : numbers) {
        // Вывод: 523
        printf("%d", number);
    }
    return 0;
}


Пользователь

от nicola , 2 года назад

@guillermo 

В C++ массивы можно передавать в функции двумя способами: как указатель или как ссылку.

  1. Передача массива как указателя:
1
2
3
4
5
6
7
8
9
void func(int* arr, int size) {
    // Код функции
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    func(arr, sizeof(arr)/sizeof(arr[0]));
    return 0;
}


  1. Передача массива как ссылки:
1
2
3
4
5
6
7
8
9
void func(int (&arr)[5]) {
    // Код функции
}

int main() {
    int arr[] = {1, 2, 3, 4, 5};
    func(arr);
    return 0;
}


В обоих случаях, размер массива необходимо передавать отдельно.