ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Объявление (или описание) функции в программе.Почти все функции должны возвращать значения. Тип этого значения указывается в заголовке перед именем функции. Вот несколько примеров заголовков функций. Объявление функции в программе делается в следующей форме: Тип <имя функции>(список параметров)
Тип функции показывает, какое значение возвращает функция: целое, вещественное, строковое и так далее. В нашем первом случае функция должна вернуть целое число (int), во втором - вещественное число (float), а в третьем случае - символ (char). Список параметров (аргументов) содержит перечень типов и имен величин, разделенных запятыми, и заключенных в скобки. Если функция не имеет параметров, то скобки все равно необходимы, хотя в них ничего не указывается, то есть в скобках в этом случае будет пустое место. Например: fun1(int a, int b, float d); Параметры функции бывают двух видов: параметры-значения и параметры-ссылки. Параметры-значения функции могут рассматриваться как локальные переменные, для которых выделяется память в стеке при вызове функции и производится копирование значений фактических аргументов. При завершении работы функции происходит очистка стека от данных, принадлежащих этой функции, при этом значения переменных теряются. Такой способ передачи параметров в функцию не изменяет значения переменных в вызывающей функции, являющихся фактическими параметрами. Пример передачи в функцию параметров-значений b и c: intfn1(intb,floatc); Второй способ передачи параметров представляет собой передачу в функцию адреса фактического аргумента. Обращение к фактическому аргументу по адресу позволяет вызванной функции изменить его значение в вызвавшей эту функцию подпрограмме. В качестве такого параметра можно использовать указатель на некоторую переменную: intfn2(int*pb); Используя операцию косвенной адресации в теле функции, можно изменить значение этой переменной: *pb=6. Другой способ передачи в функцию адреса переменной – передача параметра по ссылке, при этом в вызванной функции создается псевдоним исходной переменной, форма обращения к такому параметру-ссылке такая же, как и к обычной переменной, а сам параметр передается с помощью адреса, например, intfn3(int&ab);при этом обращение к переменной abв теле функции fn3() такое же, как к обычной переменной типа int. Тело функции – это составной оператор, содержащий объявления переменных (если необходимо), и операторы. Все переменные, объявленные в теле функции без указания класса памяти, по умолчанию имеют класс памяти auto, т. е. являются локальными. При вызове функции локальным переменным отводится память в стеке и производится их явная инициализация. Управление передается первому оператору тела функции и начинается выполнение функции, продолжающееся до тех пор, пока не встретится оператор return или последний оператор тела функции. Управление при этом возвращается в точку, следующую за точкой вызова функции, а локальные переменные становятся недоступными. При новом вызове функции для локальных переменных память распределяется вновь, и поэтому старые значения локальных переменных теряются. Современный способ определения функции - типы параметров указываются в списке параметров: floatroot(floatx,floatE) { телофункции }
Не нашли, что искали? Воспользуйтесь поиском:
|