Передача параметров по указателю

Лабораторная работа №8

Программирование с использованием подпрограмм

 

Цель работы: получение навыков в написании программ с использованием подпрограмм - функций.

Теоретические сведения

Подпрограмма – это именованная и определенным образом оформленная группа операторов, вызываемая по мере необходимости.

В языке С++ в качестве подпрограмм используют функции.

Функция – это последовательность операторов, оформленная таким образом, что ее можно вызвать по имени из любого места программы. Функция описывается следующим образом:

тип возвращаемого значения имя функции (список параметров)

{

тело функции

return результат;

}

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

В С++ не допускается вложение функций друг в друга.

Выход из функции осуществляется следующими способами:

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

2. Если необходимо вернуть определенное значение, то выход осуществ-ляется оператором

return выражение;

Передача параметров

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

Передача параметров по значению

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

Передача параметров по ссылке

При передаче параметров по ссылке передается не значение соответствующей переменной, а ее адрес. Для указания на данный способ передачи после имени параметра ставится символ «&».

Передача параметров по указателю

В отличие от передачи по ссылке адрес переменной передается в функцию не с использованием операции разадресации (&), а операцией косвенной адресации (*).

 

Функции должны быть декларированы до их первого использования. Предварительное описание функции называется прототипом, который обычно размещается в начале программы (*. cpp) либо в заголовочном файле (*. h) и сообщает компилятору о том, что далее в программе будет приведен ее полный текст, т.е. реализация.

Описание прототипа имеет следующий вид:

тип_результата ID_функции (список типов параметров);

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

Из функции можно передать только одно значение, при необходимости возвратить несколько – в списке параметров используют указатели.

Пример реализации функции, определяющей наименьшее из двух целых чисел:

int Min_x_y(int x, int y) {

return (x<y)? x: y;

}

 

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

ID_функции (список аргументов);

где в качестве аргументов можно использовать константы, переменные, выражения (их значения перед вызовом функции будут компилятором определены). Аргументы списка вызова должны совпадать со списком параметров вызываемой функции по количеству и порядку следования параметров, а типы аргументов при передаче будут преобразованы к указанным в функции типам параметров.

Вызов предыдущей функции может иметь вид: min = Min_x_y(a, b);


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: