Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по Си.doc
Скачиваний:
11
Добавлен:
04.06.2015
Размер:
2.75 Mб
Скачать

Void main()

{

головная программа с обращениями к функциям

}

описание функций

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

int summa(int a, int b);

void vorm_mass(int n, int m, int mass[n][m]);

Внимание!После закрывающих скобок точка с запятойставится обязательно!

Таким образом, прототип функции полностью соответствует ее заголовку, используемому при ее дальнейшем описании.

Сами функции описываются после головной программы:

int summa(int a, int b)

{

int s; // s – локальная переменная

s = a + b;

return s; // возврат вычисленного значения

}

void vorm_mass(int n, int m, int mass[n][m])

{

int i, j;

for (i=0; i<n; i++)

for (j=0; j<m; j++)

{

// задание значений элементам массива mass[n][m]

}

}

Внимание!После заголовка функции и закрывающих фигурных скобок точка с запятойне ставится!

В последнем случае оператор returnне нужен, так как функцияvorm_massимеет типvoid– ничего не возвращает.

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

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

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

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

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

Int summa(int a, int b)

{

return a + b; // возврат вычисленного значения

}

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

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

Int summa(int a, int b)

{

int s; // s – локальная переменная

a++;

b++;

s = a + b;

return s; // возврат вычисленного значения

}

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

Таким образом, функция в Сивычисляетединственноезначение, передаваемое вовне операторомreturn.

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

Создадим функцию, которая обменивает значениями две переменных:

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]