C++ Передача массивов в функции
В C++ можно передать указатель на массив, указав имя массива без индекса.
В C++, при передаче массива в функцию тип массива автоматически преобразуется в тип указателя, поэтому фактически передается адрес.
Если вы хотите передать одномерный массив как параметр в функцию, необходимо объявить формальный параметр функции одним из следующих трех способов. Результаты этих трех способов объявления одинаковы, потому что каждый способ сообщает компилятору, что будет получен указатель на целое число. Аналогично, вы также можете передать многомерный массив как формальный параметр.
Способ 1
Формальный параметр — указатель:
void myFunction(int *param)
{
.
.
.
}
Способ 2
Формальный параметр — это массив с заданным размером:
void myFunction(int param[10])
{
.
.
.
}
Метод 3
Формальный параметр — это массив неопределённого размера:
void myFunction(int param[])
{
.
.
.
}
Пример
Теперь давайте рассмотрим следующую функцию, которая принимает массив в качестве параметра и также передаёт другой параметр. В зависимости от переданного параметра она возвращает среднее значение элементов массива:
Теперь вызовем вышеуказанную функцию следующим образом:
Пример
Когда приведенный выше код скомпилирован и выполнен, он выдает следующие результаты:
平均值是: 214.4
Вы можете видеть, что с точки зрения функции длина массива не имеет значения, поскольку C++ не выполняет проверку границ для формальных параметров.
Другие расширения