Учимся программировать на языке C++

         

ПЕРЕДАЧА МАССИВОВ В ФУНКЦИИ


Ващи программы будут передавать массивы в функции точно так же, как и любые другие переменные. Функция может инициализировать массив, прибавить к массиву значения или вывести элементы массива на экран. Когда вы передаете массив в функцию, вы должны указать тип массива. Нет необходимости указывать размер массива. Вместо этого вы передаете параметр например number_of_elements, который содержит количество элементов в массиве:

void some_function(int array[], int number_of_elements);

Следующая программа ARRAYFUN.CPP передает массивы в функцию show_array, которая использует цикл for для вывода значений массивов:

#include iostream.h

void show_array (int array [] , int number_of_elements)

{

int i;

for (i = 0; i number_of_elements; i++) cout array[i] ' ';

cout endl;

}

void main(void)

{

int little_numbers[5] ={1,2,3,4,5};

int big_numbers[3] = { 1000, 2000, 3000 };

show_array(little_numbers, 5);

show_array(big_numbers, 3);



}

Как видите, программа просто передает массив в функцию по имени, а также указывает параметр, который сообщает функции количество элементов, содержащихся в массиве:

show_array(little_numbers, 5);

Следующая программа GETARRAY.CPP использует функцию get_values, чтобы присвоить три значения массиву numbers:

#include iostream.h

void get_values(int array[], int number_of_elements)

{

int i;

for (i = 0; i number_of_elements; i++)

{

cout “ "Введите значение " i ": ";

cin ” array [i];

}

}

void main(void)

{

int numbers[3];

get_values(numbers, 3);

cout "Значения массива" endl;

for (int i = 0; i 3; i++)

cout numbers [i] endl;

}

Как видите, программа передает массив в функцию по имени. Функция в свою очередь присваивает массиву элементы. Из урока 10 вы узнали, что, пока ваша программа не передаст параметры в функцию с помощью адреса, функция не может изменить эти параметры. Однако, как можно заметить в данном случае, функция get_values изменяет параметр-массив numbers. Как вы узнаете из урока 20, C++ действительно передает массивы в функцию, используя указатели. Таким образом, функция может изменить элементы массива, если ей это нужно.



Содержание раздела