11.1 – Параметры и аргументы функций
В главе 2 мы рассмотрели основы функций в следующих разделах:
- 2.1 – Знакомство с функциями в C++
- 2.3 – Введение в параметры и аргументы функций
- 2.6 – Предварительные объявления и определения
- 2.7 – Программы с несколькими файлами исходного кода
- 2.10 – Заголовочные файлы
Прежде чем продолжить, вы должны убедиться, что знакомы с концепциями, обсуждаемыми в этих уроках.
Параметры и аргументы
В следующих трех уроках мы немного поговорим о параметрах и аргументах, поэтому давайте вернемся к этим определениям, прежде чем продолжить.
В обычном использовании термины параметр и аргумент часто меняются местами. Однако для дальнейшего обсуждения мы будем проводить между ними различие:
Параметр функции (иногда называемый формальным параметром) – это переменная, объявленная в объявлении функции:
void foo(int x); // объявление (прототип функции): x - параметр
void foo(int x) // определение (также объявление): x - параметр
{
}
Аргумент (иногда называемый фактическим параметром) – это значение, которое передается функции вызывающим:
foo(6); // 6 - это аргумент, переданный параметру x
foo(y+1); // значение y+1 - это аргумент, переданный параметру x
Когда функция вызывается, все параметры функции создаются как переменные, а значения аргументов копируются в параметры. Например:
void foo(int x, int y)
{
}
foo(6, 7);
Когда foo()
вызывается с аргументами 6 и 7, создается параметр x
функции foo
, и ему присваивается значение 6, а созданному параметру y
функции foo
присваивается значение 7.
Несмотря на то, что параметры не объявлены внутри блока функции, они имеют локальную область видимости. Это означает, что они создаются при вызове функции и уничтожаются при завершении блока функции:
void foo(int x, int y) // x и y создаются здесь
{
} // x и y уничтожаются здесь
Существует 3 основных метода передачи аргументов функциям: передача по значению, передача по ссылке и передача по адресу. В следующей серии уроков мы рассмотрим каждый из них.