Лабораторная работа: Модульное программирование
[return возвращаемое_значение] }
В скобках помещена необязательная часть конструкции.
В списке параметров указывают данные, которые необходимо передать в функцию. Ниже рассмотрены различные способы передачи данных в функцию.
3.1 Передача параметров по значению
Параметры функции передаются по значению и могут рассматриваться как локальные переменные, для которых выделяется память при вызове функции и производится инициализация значениями фактических параметров. При выходе из функции значения этих переменных теряются. Поскольку передача параметров происходит по значению, в теле функции нельзя изменить значения переменных в вызывающей функции, являющихся фактическими параметрами.
Например:
void print_num (int i, int j)
{ printf ("значение i=%d. Значение j=%d. ", i,j);}
Обращение в программе к данной функции будет таковым:
print_num (6, 19);
3.2 Передача параметров по адресу
Рассмотрим пример функции, которая меняет значение переменных местами:
void change (int x, int y)
{ int k=x;
x=y;
y=k;
}
В данной функции значения переменных x и y, являющихся формальными параметрами, меняются местами, но поскольку эти переменные существуют только внутри функции change, значения фактических параметров, используемых при вызове функции, останутся неизменными. Для того чтобы менялись местами значения фактических аргументов можно использовать функцию приведенную в следующем примере.
Пример:
void change (int *x, int *y)
{ int k=*x;
*x=*y;
*y=k;
}
При вызове такой функции в качестве фактических параметров должны быть использованы не значения переменных, а их адреса change (&a,&b);
3.3 Передача одномерных массивов
При передаче одномерного массива в функцию следует учитывать, что имя массива не содержит информации о размере этого массива. Поэтому необходимо передавать два параметра: имя массива и размер.
Пример.
int sum (int A [], int Dim); // прототип
int sum (int A [], int Dim); // заголовок
{
….