4.6.4 Возврат Значения

4.6.4 Возврат Значения

Из функции, которая не описана как void, можно (и долно) возвращать значение. Возвращаемое значение задается опратором return. Например:

int fac(int n) (*return (n»1) ? n*fac(n-1) : 1; *)

В функции может быть больше одного оператора return: int fac(int n) (* if (n » 1) return n*fac(n-1); else return 1; *)

Как и семантика передачи параметров, семантика возврата функцией значения идентична семантике инициализации. Возврщаемое значение рассматривается как инициализатор переменной возвращаемого типа. Тип возвращаемого выражения проверяется на согласованность с возвращаемым типом и выполняются все стандартные и определенные пользователем преобразования тпов. Например:

double f() (* // ... return 1; // неявно преобразуется к double(1) *)

Каждый раз, когда вызывается функция, создается новая копия ее параметров и автоматических переменных. После возрата из функции память используется заново, поэтому возврщать указатель на локальную переменную неразумно. Содержание указываемого места изменится непредсказуемо:

int* f() (* int local = 1; // ... return amp;local; // так не делайте *)

Эта ошибка менее обычна, чем эквивалентная ошибка при использовании ссылок:

int amp; f() (* int local = 1; // ... return local; // так не делайте *)

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

int amp; f() (* return 1;*) // так не делайте

Поделитесь на страничке

Следующая глава >

Похожие главы из других книг

4.6.4 Возврат Значения

Из книги C++ автора Хилл Мюррей

4.6.4 Возврат Значения Из функции, которая не описана как void, можно (и долно) возвращать значение. Возвращаемое значение задается опратором return. Например:int fac(int n) (*return (n»1) ? n*fac(n-1) : 1; *)В функции может быть больше одного оператора return: int fac(int n) (* if (n » 1) return n*fac(n-1); else return 1; *)Как и


ГЛАВА 4. ВОЗВРАТ И ОТСЕЧЕНИЕ

Из книги Программирование на языке Пролог автора Клоксин У.

ГЛАВА 4. ВОЗВРАТ И ОТСЕЧЕНИЕ Давайте подытожим всю информацию, которую мы почерпнули в гл. 1 и 2 о том, что может произойти с целевым утверждением (целью).1. Может иметь место попытка доказать согласованность целевого утверждения с базой данных. В процессе доказательства


1. Пустые значения (Empty-значения)

Из книги Базы данных: конспект лекций автора Автор неизвестен

1. Пустые значения (Empty-значения) Пустое значение – это просто одно из множества возможных значений какого-то вполне определенного типа данных.Перечислим наиболее «естественные», непосредственные пустые значения (т. е. пустые значения, которые мы могли бы выделить


2. Неопределенные значения ( Null-значения)

Из книги Системное программирование в среде Windows автора Харт Джонсон М

2. Неопределенные значения (Null-значения) Слово Null используется для обозначения неопределенных значений в базах данных.Чтобы лучше понять, какие значения понимаются под неопределенными, рассмотрим таблицу, являющуюся фрагментом базы данных: Итак, неопределенное


Выполнение процедуры завершения и возврат из функции дежурного ожидания

Из книги Интернет-шопинг для неопытных пользователей автора Шестопалова Елена

Выполнение процедуры завершения и возврат из функции дежурного ожидания По окончании выполнения операции расширенного ввода/вывода связанная с ней процедура завершения со своими аргументами, определяющими структуру OVERLAPPED, счетчик байтов и код ошибки, помещается в


Возврат товара

Из книги QNX/UNIX [Анатомия параллелизма] автора Цилюрик Олег Иванович

Возврат товара Очень интересный момент, который обязательно надо обговорить. Во всех интернет-магазинах свои правила возврата товара, но российское законодательство все равно прописывает общие правила для всех. Если вы получили товар ненадлежащего качества, то мнения


Возврат товара

Из книги Введение в QNX/Neutrino 2. Руководство по программированию приложений реального времени в QNX Realtime Platform автора Кёртен Роб

Возврат товара Перед тем, как завершить оформление заказа, было бы неплохо прочитать условия возврата. Некоторые магазины пишут, что возврат из-за рубежа невозможен, другие относятся к этому нормально, и вместе с заказом присылают лист возврата, если вы вдруг что-то


Возврат результата потока

Из книги 1С: Бухгалтерия 8 с нуля. 100 уроков для начинающих автора Гладкий Алексей Анатольевич

Возврат результата потока Выше отмечено, что вызов pthread_exit(), завершающий ожидаемый поток, может передать результат выполнения потока. То же действие может быть выполнено и оператором return потоковой функции, которая из прототипа ее определения должна возвращать значение


Урок № 48. Возврат ТМЦ поставщику

Из книги Linux и UNIX: программирование в shell. Руководство разработчика. автора Тейнсли Дэвид

Урок № 48. Возврат ТМЦ поставщику Возврат товарно-материальных ценностей поставщику – операция, встречающаяся довольно часто. Кто-то возвращает товары по причине невозможности рассчитаться за них, кто-то – из-за снижения покупательского спроса, кто-то хочет вернуть


Урок № 55. Возврат товаров от покупателей

Из книги Разработка ядра Linux автора Лав Роберт

Урок № 55. Возврат товаров от покупателей Для оформления возврата товарно-материальных ценностей от покупателей в программе предназначен документ "Возврат товаров от покупателя". Для перехода в режим работы с этими документами нужно выполнить команду главного меню


Урок № 69. Возврат спецодежды, спецоснастки и инвентаря из эксплуатации

Из книги автора

Урок № 69. Возврат спецодежды, спецоснастки и инвентаря из эксплуатации Переданные в эксплуатацию ценности могут возвращаться обратно на склад, с которого они ранее были выданы. Для отражения в учете этой операции в программе "1С:Бухгалтерия 8" предназначен документ,


19.4. Возврат значения функции

Из книги автора

19.4. Возврат значения функции После естественного завершения выполнения функции либо в том случае, когда она завершается в результате выполнения какого?либо условия, можно выбрать один из двух возможных вариантов:   1. Дождаться, пока функция естественным образом не


Переход в приостановленное состояние и возврат к выполнению

Из книги автора

Переход в приостановленное состояние и возврат к выполнению Приостановленное состояние задачи (состояние ожидания, заблокированное состояние, sleeping, blocked) представляет собой специальное состояние задачи, в котором задание не выполняется. Это является очень важным, так