- •Лабораторная работа №5 функции
- •Как использовать функции
- •Переменные в функциях
- •Автоматические (локальные) переменные
- •Внешние (глобальные) переменные
- •Статические переменные
- •Передача параметров
- •Возвращаемые значения
- •Возврат значений типа float
- •Использование return() в функции main()
- •Использование макроопределений
- •Проектирование программы
- •Автоматические или внешние переменные?
- •Неправильный ввод
Возвращаемые значения
Функция может как получать, так и возвращать значения. Для получения значения, возвращаемого функцией getchar(), нужно сделать такую запись:
key = getchar();
Приведенная инструкция вызывает функцию getchar(), которая вводит единичный символ с клавиатуры. После выполнения ввода символ присваивается в качестве значения переменной с именем key. Это и есть возврат значения.
Ваши собственные функции также могут возвращать значения в функции, из которых они были вызваны. Если вы хотите возвратить значение, необходимо добавить в тело функции несколько дополнительных элементов. Посмотрите на следующую программу:
main()
{
charletter;
letter = getlet();
putchar('\n');
printf("Вы ввели символ %c", letter);
}
chargetlet()
{
printf("Введите символ: ");
return(getchar());
}
Инструкция
letter = getlet();
вызывает функцию getlet(). Эта функция принимает символ с клавиатуры и возвращает его переменной letter в функции main().
Для того чтобы возвратить значение переменной, необходимо указать компилятору тип возвращаемого значения. Это осуществляется определением типа перед именем функции
chargetlet();
В данной инструкции мы указали компилятору, что значение, возвращаемое функцией getlet(), относится к символьному типу. Значение, которое будет возвращено, указывается в круглых скобках после ключевого слова return(). Инструкция, записанная в строке
return(getchar());
выполняет большую часть работы. Запомните, что функция getchar() в инструкциях применяется там, где возможно использование выражения или некоторого значения. В рассматриваемой программе функция getchar() вводит символ, затем инструкция return() после выполнения функции printf() передает символ назад, присваивая его переменной letter, и возвращает управление в main().
|
Рис. 7. Программа, иллюстрирующая возврат значения из функции
Обратите особенное внимание на работу ключевого слова return() в этом примере. Удостоверьтесь, что вы действительно поняли, как используются return() и функция getchar().
Давайте теперь рассмотрим программу, в которой значение и передается, и возвращается. Программа, изображенная на рис.7, вводит с клавиатуры значение в переменную, а затем выводит на экран квадрат этого значения.
Инструкция
number = square(value);
вызывает функцию square(), передавая ей значение переменной value. Определение функции как i
ntsquare(num)
сообщает компилятору Си, что square() возвращает целочисленное значение и что она получит аргумент в переменную num. В этом примере return() является только инструкцией функции. Строка
return(num * num)
возвращает значение выражения num * num, записывая его в переменную number, которой присвоен вызов функции square() в main().
|
|