Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции / lect08.ppt
Скачиваний:
3
Добавлен:
18.02.2023
Размер:
218.62 Кб
Скачать

Пример

main

division

max min

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

Для реализации возврата значения и завершения выполнения функции используется оператор завершения функции,

который относится к группе операторов управления, не рассматривался ранее. Синтаксис использования оператора завершения функции:

return выражение;

Если функция не возвращает никакого значения (в заголовке указан тип void), то оператор возврата указывается без какого-либо выражения:

return;

Пример

Функция, определяющую количество корней квадратного уравнения (целочисленное значение), заданного коэффициентами a, b и c (формальные параметры функции):

int NumberOfRoots(double a, double b, double c)

{

double descr = b*b – 4.0*a*c; if(descr < 0) return 0;

else if(descr > 0) return 2; else return 1;

}

Пример

double descr=b*b–4.0*a*c; if(descr<0) return 0;

else if(descr>0) return 2; return 1;

double descr=b*b–4.0*a*c; int num = 1;

if(descr<0) num = 0;

else if(descr>0) num = 2; return num;

Возврат значений сложных типов

Возврат значений сложных типов (структур и объединений) возможен только в стандарте С99.

В более ранних версиях языка возврат в качестве значений структур или объединений невозможен.

Возвращать в качестве значений массивы в языке С нельзя. Для этого можно использовать возврат указателя на массив.

Параметры функции

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

Пример:

int Length(const char *str)

{

int len = 0;

for(char *ptr = str;*ptr!=0;ptr++) len++; return len;

}

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

Вязыках программирования высокого уровня реализованы два механизма передачи параметров:

по значению;

по ссылке.

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

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

void Inc(int a) { a++; }

int main (int argc, char *argv[])

{

int val = 0; printf(“Значение: %d\n”,val); Inc(val);

printf(“Значение: %d\n”,val); return 0;

}

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

В языке С механизм передачи параметра по ссылке реализован посредством указателей.

void Inc(int *a) { (*a)++; }

int main (int argc, char *argv[])

{

int val = 0; printf(“Значение: %d\n”,val); Inc(&val);

printf(“Значение: %d\n”,val); return 0;

}

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

Механизм передачи параметров по ссылке используется для реализации возможностей:

изменение значения переменной, описанной внутри вызывающей функции, вызываемой функцией;

реализации функций, возвращающих несколько значений.

Соседние файлы в папке Лекции