Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
default-1.doc
Скачиваний:
28
Добавлен:
28.09.2019
Размер:
221.18 Кб
Скачать
  1. Понятие функции в Си. Определение и описание. Вызов функции.

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

Вот общий синтаксис функции:

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

Давайте познакомимся ближе со всеми основными понятиями функции:

возвращаемое значение функции

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

имя функции

Имя функции может быть любым, но лучше всего давать имя функции в зависимости от ее назначения

передаваемые параметры функции

Можно так же ничего не передавать функции, например, если наша функция будет выводить какие-нибудь сообщения, но, а можно передавать сколько угодно много параметров функции. Но с аргументами перебирать нельзя, так как просто можно запутаться

Мы уже не раз встречались с функциями. Ведь неслучайно в водных уроках я говорил про подлючаемые файлы. В них и содержатся функции, которыми мы пользуемся: printf, scanf, getch. Вот вам пример функции:

#include <conio.h>

#include <stdio.h>

// Функция, возвращающая код символа

int simvol (char ch){

return ch;

}

int main()

{

int player[5];

char ch = 'a';

printf ("%d", simvol(ch));

getch();

return 0;

}

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

пишем имя функции

пишем передаваемые параметры функции

Ну а вот примеры вызовов функций:

simvol(ch); //передаем переменную типа char

getch(); // ничего не передаем

Учтите, что передаваемые параметры в функцию должны точно соответствовать типу, который эта функция принимает.

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

  1. Передача параметров функции по значению.

Пара́метр в программировании — принятый функцией аргумент. Термин «аргумент» подразумевает, что конкретно и какой конкретной функции было передано, а параметр — в каком качестве функция применила это принятое. Т.е. вызывающий код передает аргумент в параметр, который определен в спецификации функции. Для усвоения разницы можно запомнить термин «параметризованная функция».

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

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

[править]

Передача параметра по адресу

Если необходимо именно изменить переменную из внешней, по отношению к вызываемой функции, области видимости, можно копировать адрес переменной, подлежащей изменению. Соответственно при вызове функции g(&x) приходится использовать операцию взятия адреса. Эта техническая деталь отвлекает внимание программиста от логики прикладной программы, однако в случаях невозможности передачи по ссылке может оказаться единственным решением.

Можно заметить, что передача параметра по адресу является частным случаем передачи по значению: передаваемым значением является адрес, по которому можно найти другое значение — значение переменной x.

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