Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ТРПП Ответы на Экзамен.docx
Скачиваний:
4
Добавлен:
19.12.2018
Размер:
53.18 Кб
Скачать

1.5.3. Функция main

С точки зрения функций, main тоже является функцией. Main переводится как главная. Возможны два варианта блока main.

Вариант 1

main ()

{ ...

return 0;

}

Блок main возвращает значение целого типа int.

Вариант 2

void main ()

{ ...

}

1.5.4. Вызов функции

Функция начинает выполняться в момент вызова.

Для вызова функции указывается ее имя, за которым в круглых скобках через запятую перечисляются имена передаваемых параметров.

При вызове функции выполняются все операторы из тела функции до конца (оператора return). Затем происходит возврат в главную функцию.

В объявлении, определении и вызове одной и той же функции типы и порядок следования параметров должны совпадать.

1.5.5. Способы передачи данных

Механизм параметров является основным способом обмена информацией между вызываемой и вызывающей функциями.

Параметры, перечисленные в заголовке описания функции, называются формальными параметрами (или просто параметрами).

Параметры, записанные в операторе вызова функции, называются фактическими параметрами (или аргументами).

Существует два способа передачи параметров в функцию: по значению (копирование) и по адресу.

1 способ. При передаче по значению в принимающую функцию передается не сама переменная-параметр, а только ее значение – копия. Это уже не одна переменная, а, фактически, две. Первая является локальной по отношению к главной функции, а вторая локальной по отношению к принимающей функции. Если эти переменные имеют одно и тоже имя, конфликта не возникает, т.к. они локальны. При изменении переменной в принимающей функции значение в вызывающей (главной) функции не изменяется.

2 способ. При передаче параметров по адресу (или ссылке) в принимающую функцию передается адрес переменной-параметра. Поэтому принимающая функция получает доступ к ячейке памяти по этому адресу и может изменить исходное значение аргумента. Измененное значение сохраняется и после выхода из функции.

В результате выполнения программы в переменных i и j окажутся значения 6 и 16.

1.5.6. Возвращаемые значения функции

Если необходимо вернуть значение в вызывающую функцию, надо указать его после оператора return. Можно заключить возвращаемое значение в круглые скобки. В этом случае перед названием функции указывается тип возвращаемого значения.

Замечание

Хотя функция может получать более одного параметра, она возвращает только одно значение в вызывающую функцию. Если функция должна изменять более одного значения, их необходимо передавать по адресу. Оператор return не может возвращать несколько значений. Если функция не возвращает никакого значения, то перед ее именем указывается слово void. В этом случае оператор return можно опустить.

1.5.7. Использование прототипов функций

В программе можно сначала описывать вызываемые функции, а затем главную функцию main (как это делалось во всех выше описанных примерах). Чтобы изменить порядок описания функций необходимо использовать прототип функций. Прототип функции выглядит так же как ее заголовок, только с точкой запятой в конце. Прототип функции можно использовать, даже если эта функция не возвращает результат или нет необходимости передавать в нее значения (т.е. у нее нет параметров).

Использование прототипов позволяет исключить возможные ошибки при передаче параметров.