- Локальные переменные
- Формальные параметры
- Статические переменные
- Глобальные переменные
- Input переменные
- Extern переменные
- Инициализация переменных
- Область видимости и время жизни переменных
- Создание и уничтожение объектов
Формальные параметры
Передаваемые в функцию параметры являются локальными. Областью видимости является блок функции. Формальные параметры должны отличаться по именам от внешних переменных и локальных переменных, определенных внутри функции. В блоке функции формальным параметрам могут быть присвоены некоторые значения. Если же формальный параметр объявлен с модификатором const, то его значение не может быть изменено внутри функции.
Пример:
void func(const int & x[], double y, bool z)
|
Формальные параметры могут быть проинициализированы константами. В этом случае инициализирующее значение считается значением по умолчанию. Параметры, следующие за проинициализированным параметром, должны быть тоже проинициализированы.
Пример:
void func(int x, double y = 0.0, bool z = true)
|
При вызове такой функции инициализированные параметры можно опускать, вместо них будут подставлены значения по умолчанию.
Пример:
func(123, 0.5); |
Параметры простых типов передаются по значению, то есть изменения соответствующей локальной переменной такого типа внутри вызываемой функции никак не отразятся в вызывающей функции. Массивы любых типов и данные типа структур всегда передаются по ссылке. Если необходимо запретить изменение массива или содержимого структуры, параметры этих типов должны быть объявлены с ключевым словом const.
Существует возможность передавать по ссылке и параметры простых типов. В этом случае модификация таких параметров внутри вызываемой функции отразится на соответствующих переменных, переданных по ссылке. Для того чтобы указать, что параметр передается по ссылке, после типа данных необходимо поставить модификатор &.
Пример:
void func(int& x, double& y, double & z[])
|
Параметры, передаваемые по ссылке, нельзя инициализировать значениями по умолчанию.
В функцию нельзя передать больше 64 параметров.
Смотри также
Input переменные, Типы данных, Инкапсуляция и расширяемость типов, Инициализация переменных, Область видимости и время жизни переменных, Создание и уничтожение объектов