ВУЗ:
Составители:
Рубрика:
4.1.2. Параметры функции
Механизм параметров является основным способом обмена инфор-
мацией между вызываемой и вызывающей функциями. Параметры,
перечисленные в заголовке описания функции, называются формальны-
ми, а записанные в операторе вызова функции – фактическими (или ар-
гументами).
При вызове функции в первую очередь вычисляются выражения,
стоящие на месте фактических параметров; затем в стеке выделяется па-
мять под формальные параметры функции в соответствии с их типом, и
каждому из них присваивается значение соответствующего фактическо-
го параметра. При этом проверяется соответствие типов и при необхо-
димости выполняются их преобразования. При несоответствии типов
выдается диагностическое сообщение.
Существует два вида передачи величин в функцию: по значению и
по адресу.
При передаче по значению в стек заносятся копии значений факти-
ческих параметров, и операторы функции работают с этими копиями.
Доступа к исходным значениям параметров у функции нет, а, следова-
тельно, нет и возможности их изменить.
При передаче по адресу в стек заносятся копии адресов параметров,
а функция осуществляет доступ к ячейкам памяти по этим адресам
и может изменить исходные значения параметров.
Пример 53
#include <iostream.h>
//объявление функции f
void f(int i, int* j, int& k);
int main()
{
int i = 1, j = 2, k = 3;
cout <<"i j k\n";
cout << i <<' '<< j <<' '<< k <<'\n';
f(i, &j, k);
cout << i <<' '<< j <<' '<< k;
}
// определение функции f
void f(int i, int* j, int& k)
{
i++; (*j)++; k++;
}
Результат работы программы:
100
Страницы
- « первая
- ‹ предыдущая
- …
- 98
- 99
- 100
- 101
- 102
- …
- следующая ›
- последняя »
