11.1 – Параметры и аргументы функций

Добавлено 12 июня 2021 в 09:39

В главе 2 мы рассмотрели основы функций в следующих разделах:

Прежде чем продолжить, вы должны убедиться, что знакомы с концепциями, обсуждаемыми в этих уроках.

Параметры и аргументы

В следующих трех уроках мы немного поговорим о параметрах и аргументах, поэтому давайте вернемся к этим определениям, прежде чем продолжить.

В обычном использовании термины параметр и аргумент часто меняются местами. Однако для дальнейшего обсуждения мы будем проводить между ними различие:

Параметр функции (иногда называемый формальным параметром) – это переменная, объявленная в объявлении функции:

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 основных метода передачи аргументов функциям: передача по значению, передача по ссылке и передача по адресу. В следующей серии уроков мы рассмотрим каждый из них.

Теги

C++ / CppLearnCppДля начинающихОбучениеПрограммирование

На сайте работает сервис комментирования DISQUS, который позволяет вам оставлять комментарии на множестве сайтов, имея лишь один аккаунт на Disqus.com.

В случае комментирования в качестве гостя (без регистрации на disqus.com) для публикации комментария требуется время на премодерацию.